How to save output of double loop?

조회 수: 1(최근 30일)
Noor Bano
Noor Bano 2021년 9월 17일
댓글: Noor Bano 2021년 9월 17일
If I have
for i=1:n
....
for j=1:m
A=myfunction(...);
end
end
The resultant A's are images, I want to save all A.s in the folder
I have tried the following but it only store A only for j
for i=1:n
....
for j=1:m
A=myfunction(...);
end
imwrite(A,strcat('The folder where I want to store ',num2str{j},'.png'));
end
How to store the output A of double loop ?

채택된 답변

Mohammad Sami
Mohammad Sami 2021년 9월 17일
편집: Mohammad Sami 2021년 9월 17일
You should use the fullfile function to create the filepath. Your call to imwrite function is in the outer for loop, hence it will only save once per outer loop. You should call it in the inner loop to save all. Also to avoid overwriting the files, you need both i and j values in the filename.
dirtosave = 'C:\mydir\';
for i=1:n
....
for j=1:m
A=myfunction(...);
fname = sprintf('A_i_%i_j_%i.png',i,j);
imwrite(A,fullfile(dirtosave,fname));
end
end
  댓글 수: 1
Noor Bano
Noor Bano 2021년 9월 17일
Thank you very much.

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

추가 답변(1개)

KSSV
KSSV 2021년 9월 17일
A = zeros(n,m) ;
for i=1:n
for j=1:m
A=myfunction(...); % assuming output of the function is 1x1
end
end
imwrite(A,strcat('The folder where I want to store ',num2str{j},'.png'));

Community Treasure Hunt

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

Start Hunting!

Translated by