For loop to extract every 3rd column out of matrix and assign as variable name
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Anna M
am 24 Jun. 2019
Kommentiert: Anna M
am 2 Jul. 2019
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.
Thanks!
2 Kommentare
Stephen23
am 25 Jun. 2019
Bearbeitet: Stephen23
am 25 Jun. 2019
"...assign it to a variable name, such as X1, X2,...,X24. How can I do this?"
Do NOT do this.
Accessing variable names is one way that beginners force themselves into writing slow, complex, buggy code that is hard to debug. Read these to know why:
You should use indexing. Inexing is neat, easy to debug, and very efficient.
Akzeptierte Antwort
James Tursa
am 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.,
2 Kommentare
infinity
am 25 Jun. 2019
Hello, Thank @James Tursa for mentioning this issuse of eval function.
I recommend @Anna M to refer these solutions.
Weitere Antworten (1)
infinity
am 24 Jun. 2019
Hello,
Here is an example that you can refer
for i = 1:24
v = genvarname(['X' num2str(i)]);
eval([v '= A(:,3*i);']);
end
where A is your matrix.
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!