saving files in a loop with different names

Hi
My code looks something like:
for k = 1:length(sixCenters)
grouped(:,:,k) = fisher_matrix;
filename = strcat(sixCenters(k),'.mat');
save(filename,grouped);
continue; end
end
fisher_matrix is just matrix of doubles, sixCenters is a 6x1 cell, containing charachters like "NYU", "Lond".. The way I construct filename, it is indicated as char, so the line where I want to save the matrix "grouped" throws the following error:
Error using save
Argument must contain a string.
Error in example_Script(line 22)
save(filename,grouped);
What can I do? Thanks

 채택된 답변

Image Analyst
Image Analyst 2015년 9월 10일

3 개 추천

Try this:
folder = pwd; % or whatever you want.
for k = 1 : length(sixCenters)
grouped(:, :, k) = fisher_matrix;
baseFileName = sprintf('%s.mat', sixCenters{k});
fullMatFileName = fullfile(folder, baseFileName);
save(fullMatFileName, 'grouped');
end

추가 답변 (1개)

Hamoon
Hamoon 2015년 9월 9일

0 개 추천

you should pass the string of the name of your variable, use this:
save(filename,'grouped');

댓글 수: 2

MiauMiau
MiauMiau 2015년 9월 9일
that does NOT solve the problem, same error message. the problem is as indicated with filename
Hamoon
Hamoon 2015년 9월 9일
편집: Image Analyst 2015년 9월 10일
oh, you've got problem with filename too. you should use braces instead of parentheses for a cell array to get its value, when you use parentheses you refer to a cell with one dimension. So rewrite that section of your code as:
filename = strcat(sixCenters{k},'.mat');
and also you need to do what I said before:
save(filename,'grouped');

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

질문:

2015년 9월 9일

답변:

2015년 9월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by