Reading mat files with variables that have different names
Show older comments
Hi there,
I am trying to load a bunch of mat files, the contents of which are CELL variables. For example when I load a file named "part1_240_T_1200_sig_25.mat", I get a variable named new_X1 which is a cell of size 1 by 240.........I tried various things like calling it in a structure, loading it like new_X = load('part1_240_T_1200_sig_25.mat'), but I still cant automate the process. At the end, I woud like to load the files in a loop (which I have done) but also change the variable names dynamically as the loop goes through several mat files.
So, if I could get something like
for ii = 1:files_length
eval(['load ' files(ii).name ])
num = size(new_X*{"ii"}*,2); %......change the cell variable name with the loop index
end
Would num2str work?? Thanks
Accepted Answer
More Answers (2)
Jan
on 25 May 2012
Avoid eval(). Whenever you think of using this evil function, I promise, that there is a better, nicer, faster and more reliable method. (Phew, the frequent readers of the forum know, that even I know one task, which can be solved by eval() only - beside the evalulation of symbolic expressions).
eval(['load ' files(ii).name ])
==>
load(files(ii).name);
But it is even better to catch the loaded values in a struct:
Data = load(files(ii).name);
2 Comments
chane moges
on 2 Jan 2019
you answer is incorrect because it jump the sequence of the foor loop. So you correct it and post again.
Image Analyst
on 2 Jan 2019
See my (Image Analyst) answer above. I added a bunch of comments that will hopefully explain it.
TUSHAR ANDRIYAS
on 25 May 2012
0 votes
Categories
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!