MATLAB Answers

How to assign results to varying filename?

7 views (last 30 days)
M G
M G on 10 Mar 2014
Answered: Neuroscientist on 24 Apr 2014
Hi all,
I am trying this:
for i = 1:length(originalData)
['data_hz' '_' num2str(i)] = selectedData(x1:x2);
end
I want to split my original data into different file names, but the code does not allow me to use this structure on the left side of the "=". Any hint please?
Thank you very much :)

  0 Comments

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 10 Mar 2014
Maybe you want some thing like this:
someFolder = 'D:\whatever';
for k = 1 : length(originalData)
baseFileName = sprintf('data_hz_%d.dat', k);
fullFileName = fullfile(someFolder, baseFileName);
save(fullFileName, 'selectedData');
end

  1 Comment

M G
M G on 11 Mar 2014
Thanks.... That's a good way to do but I do not want to save in each loop! It will create tens of files!

Sign in to comment.

More Answers (1)

Neuroscientist
Neuroscientist on 24 Apr 2014
Dear Mehdi,
Perhaps you want to split your data into different variables and not files and to save all of them in a single file. One good way will be to use struct fields, another will be to use cell array.
For struct fields something like this can do the job
for i = 1:length(originalData)
currVar = strcat('data_hz_', num2str(i)); %a meaningful variable name for you
splitData.(currVar) = selectedData(x1:x2); %you can use index also like splitData.(currVar)(i,k)
end
you can re-structure however you want your variables also.

  0 Comments

Sign in to comment.