Store matrices under different variable names within a loop?
Ältere Kommentare anzeigen
I have a 4 by 16 matrix, say mat, and it can be random for this example. I would like to convert it into four seperate 4 by 4 matricies, where the first row of mat is reshaped into the first 4 by 4 matrix.
At the moment I have this code...
mat = randi([0, 9], [4,16])
for k = 1:size(mat,1)
vec = mat(k,:);
A = reshape(vec,[4,4]);
end
This achieves what I would like it to, however it stores all four of the matricies under A, so after it has run I can only access the fourth matrix.
Is there an efficient way to title the four matricies seperately so I can access them all?
1 Kommentar
Stephen23
am 5 Apr. 2020
"Is there an efficient way to title the four matricies seperately so I can access them all?"
Yes, by allocating them explicitly to four variables:
A = ...
B = ...
C = ...
D = ...
Although some beginners use assignin, evalin, eval etc., none of these are efficient. Your basic concept of dynamically defining variable names is fundementally inefficient, slow, obfuscated, liable to bugs, and difficult to debug.
Usually the best solution is to NOT split up data, but to use MATOLAB efficient indexing, grouping, etc. methods.
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!