For loop to extract every 3rd column out of matrix and assign as variable name

5 views (last 30 days)
I have a matrix that is 6001 x 72. I want to iterate through the matrix to extract every 3rd column, from 1:72, and assign it to a variable name, such as X1, X2,...,X24. How can I do this?
I have tried a for loop, but I keep getting error messages. I am a beginner in Matlab.

Sign in to comment.

Accepted Answer

James Tursa
James Tursa on 24 Jun 2019
Do not do this! This will only lead to headaches downstream in your code for processing these variables (you will need to use more eval( ) statements etc) and will be a nightmare to debug. There are much better alternatives. E.g.,

More Answers (1)

infinity on 24 Jun 2019
Here is an example that you can refer
for i = 1:24
v = genvarname(['X' num2str(i)]);
eval([v '= A(:,3*i);']);
where A is your matrix.


Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!