Read multiple .mat files and process them
显示 更早的评论
Hi,
I wanna read some .mat files with name "sub1_hi.mat" to "sub40_hi.mat" that are 4D matrices and process them.
I did the first step with this code:
for j=1:40
load (['s',num2str(j),'_hi_dDTF.mat'])
end
But, when I wanna try this inner loop I got error for the size and imagesc functions.
for j=1:40
data = load (['s',num2str(j),'_hi_dDTF.mat'])
[chan1, chan2, freq, winNumber] = size(data);
for i=1:winNumber
fig = imagesc(data(:,:,3,i))
filename = ['dDTF_s',num2str(j),'_hi_beta',num2str(i),'.jpg']
saveas(fig, filename)
end
end
采纳的回答
更多回答(1 个)
Walter Roberson
2023-2-20
0 个投票
The output of load is always a struct that contains one field for each variable that was loaded. Your second code has the right general approach but you need to account for the loaded variable name as a field of data . That is easy enough if the variable name is always the same, but gets a bit messier if the variable names in the files change.
2 个评论
Reza
2023-2-21
Walter Roberson
2023-2-21
Use dynamic field names. Compute the name of the variable and use
data.(variablename)
If the variable name is not known then use fieldnames(data)
类别
在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!