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

1 view (last 30 days)
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!!!

Accepted Answer

Guillaume
Guillaume on 20 Oct 2014
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 Comments
MC3105
MC3105 on 20 Oct 2014
thanks! I did it wrong before, but I found out how to do it now :)
Guillaume
Guillaume on 20 Oct 2014
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');

Sign in to comment.

More Answers (1)

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

Categories

Find more on Numeric Types in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!