split mtatrix and name automatically
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
mehra
am 5 Nov. 2022
Bearbeitet: Stephen23
am 5 Nov. 2022
Hello guys
I have a mat file (attached) which is a 10004*15 matrix. I need to split it into 15 seprated matrixes like (10004*1). and I need to name these matrixes like ur1, ur2, ...ur15.
I know that ı can split matrixes by using the following code:
ur1=ur(:,15);
ur2=ur(:,14)
% and so on....
but I want to know if I can use it in a for loop so that I can have fewer lines (since I need to use the same code for other data files and it will be so long).
Also I want to ask if there is a way to name my output matrixes automatically.
5 Kommentare
Stephen23
am 5 Nov. 2022
Bearbeitet: Stephen23
am 5 Nov. 2022
"... I need to name these matrixes like ur1, ur2, ...ur15."
If the code requires lots of numbered variable names then you are doing something wrong.
Using indexing is simpler, neater, easier, and much more efficient than your approach. What is stopping you from using the indexing directly, or a simple cell array?
Akzeptierte Antwort
the cyclist
am 5 Nov. 2022
Bearbeitet: the cyclist
am 5 Nov. 2022
Anywhere that you could have used the variable name ur1, you can almost always just reference ur(:,1) directly instead, and not used the dynamically named variables. (Please read this post about why dynamically named variables are a terrible idea in general.)
If you must break out into individual variables, then using a cell array is typically a better idea:
% Initialize empty cell array
urc = cell(15,1);
% Fill them
for nc = 1:15
urc{nc} = ur(:,nc); % Note the use of curly brackets to denote contents of cell. See docs.
end
1 Kommentar
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices 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!