How to save matrixes to files with similar names in loop?

5 次查看(过去 30 天)
Hello everyone,
with your help I was able to create a loop that loads different datasets and then runs through my whole code. The names of the original datasets are pretty similar: for example data_ID_200.mat and data_ID_304.mat I used the following command to load these data files:
l=dir('Z:\.....\data_ID_*.mat')
names={l.name}
for n=1:numel(names)
load('[Z:\...\' names{n}])
run('Code')
end
Now before the loop ends and starts the next iteration I want to save some matrixes that my code created. How can I specify the names for the matrixes I want to save? Preferably I would like to save these matrixes to matrix_ID_200.mat and matrix_ID_304.mat - so that they correspond directly to my original datasets and I can easily use them in further applications that require the ID of each dataset.
Is there anyway I could do this? Right now my list for names contains:
names = 'data_ID_200.mat' 'data_ID_304.mat'
Maybe I could kind of cut out the ID number and insert them into some kind of string??
Thanks a lot for your help!!!

采纳的回答

Guillaume
Guillaume 2014-10-20
There are many ways you could do this, for example using a regular expression to extract the ID, but a simple way:
savename = strrep(names{n}, 'data', 'matrix');
save(savename, ...);
  3 个评论
MC3105
MC3105 2014-10-20
thanks! I did it wrong before, but I found out how to do it now :)
Guillaume
Guillaume 2014-10-20
Use save with the savename, and the names of the variables you want to save. Use fullfile to build the full path:
save(fullfile(''Z:\.....\', savename), 'somevarname');

请先登录,再进行评论。

更多回答(1 个)

michael scheinfeild
michael scheinfeild 2014-10-20
files=dir(fullfile("data","*.dat");
for(n=1:length(files))
d=files(n).name;
somename=strcat('a','bla',num2str(n));....
end

类别

Help CenterFile Exchange 中查找有关 Whos 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by