조회 수: 5(최근 30일)

Hello,

I want to display the values of a 3x3 matrix in pseudocolors. I already found a way to do that for one at a time, but I need to do this with approx. 300 matrices.

My process for one picture is the following:

% a001 is a name of a variable. These would be counting up with the matrices.

% A001 is the name of the matrix. These are counting up to whatever many matrices there are.

a001 = pcolor(A001);

a001.FaceColor = 'interp';

caxis([0 1500]);

% the axes should be the same for comparing purposes.

saveas (a001, "a001.png")

I don't know how to repeat this process, so that the numbered elements count up and different pictures are saved without one overwriting another. Any help would be much appreciated.

I have that feeling, that i'm going to be referred to the FAQ where it says not to do this. But I honestly do not know how I would transfer the advice given there to my problem.

Johannes Fischer
30 Jun 2020

Assuming you dont need a001 etc.

% N is the number of matrices

for ii = 1:N

% load or create A

%...

a = pcolor(A);

a.FaceColor = 'interp';

caxis([0 1500]);

% create a filename depending on the for-loop index.

% The current index is inserted using the format string %04d, which means,

% that ii is placed in the string as a number with '4' digits, leading '0's

% and as a whole number ('d')

filename = sprintf('a%04d.png', ii)

saveas (a, filename)

end

And yes, this code is not 100% efficient, because you would recreate the plot in every iteration. Its better to create 'a' before the loop and then only change its underlying data.

% initialize a with some matrix A0 (3x3)

a = pcolor(A0)

a.FaceColor = 'interp';

caxis([0 1500]);

% N is the number of matrices

for ii = 1:N

% load or create A

%...

% change the data that is displayed in a

a.CData = A;

% create a filename depending on the for-loop index.

% The current index is inserted using the format string %04d, which means,

% that ii is placed in the string as a number with '4' digits, leading '0's

% and as a whole number ('d')

filename = sprintf('a%04d.png', ii)

saveas (a, filename)

end

Opportunities for recent engineering grads.

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

Start Hunting!
## 댓글 수: 3

## 이 댓글에 대한 바로 가기 링크

https://kr.mathworks.com/matlabcentral/answers/557053-repeating-a-process-with-changing-file-names-possibly-with-a-loop#comment_918697

⋮## 이 댓글에 대한 바로 가기 링크

https://kr.mathworks.com/matlabcentral/answers/557053-repeating-a-process-with-changing-file-names-possibly-with-a-loop#comment_918697

## 이 댓글에 대한 바로 가기 링크

https://kr.mathworks.com/matlabcentral/answers/557053-repeating-a-process-with-changing-file-names-possibly-with-a-loop#comment_918727

⋮## 이 댓글에 대한 바로 가기 링크

https://kr.mathworks.com/matlabcentral/answers/557053-repeating-a-process-with-changing-file-names-possibly-with-a-loop#comment_918727

## 이 댓글에 대한 바로 가기 링크

https://kr.mathworks.com/matlabcentral/answers/557053-repeating-a-process-with-changing-file-names-possibly-with-a-loop#comment_918736

⋮## 이 댓글에 대한 바로 가기 링크

https://kr.mathworks.com/matlabcentral/answers/557053-repeating-a-process-with-changing-file-names-possibly-with-a-loop#comment_918736

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