Indexing a variable
54 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi,
I'm looking for some guidance on how you would index variables. I have read a couple of forums but with no clear picture.
I have looped a matrix array (5x1) of a numerical form to obtain a string output of 5 ".mat" files that has data stored in them. What I want to do next is Load these .mat files in a loop and let Matlab iterate it for each file such that I get my plots for each (or string in this case).
A simple example, for loop output --> mat files = A_1, A_2, A_3, A_4, A_5
load A_1, A_2, A_3, A_4, A_5 each time to create the plots. (?) or extend the above for-loop further to load the file each iteration. (?)
Now, I could load each file each time and get the results (load A_1 then load A_2 etc...) But if there could be some sort of a variable counter that would be great (less work... lol). Further, the 1 to 5 numerical value of the mat file was set by me. (If it would help).
Thanks
Ferd
0 Kommentare
Akzeptierte Antwort
Jan
am 13 Mär. 2012
list = dir('A_*.mat');
Data = cell(1, length(list));
for k = 1:length(list)
matFilename = list(k).name;
matData = load(matFilename);
Data{k} = matData.A;
% Or if the file A_1 contains the matrix A_1:
% [dummy, name] = fileparts(matFilename);
% Data{k} = matData.(name);
% Or:
% Data{k} = matData.(sprintf('A_%d', k));
end
Be sure to read this also: FAQ: How can I create A1, A2, ... and consider the recommendation to avoid hiding an index in the name of a variable.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Startup and Shutdown 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!