Subplot n pcolor matrixes
조회 수: 3 (최근 30일)
이전 댓글 표시
Hello everyone,
I have to subplot n pcolor matrixes in a 1 x n figure, but I have several problems because I can't set the size of the matrixes in the subplot. All my matrixes have the same size (120 x 120) and I must do it without using the image() function.
Please, could you help me?
Thank you so much.
댓글 수: 0
채택된 답변
Image Analyst
2015년 9월 21일
Then use imshow(). It's now in base MATLAB and doesn't chop off the last row and last column like pcolor() does.
댓글 수: 3
Image Analyst
2015년 9월 21일
Jose: You have floatingpoint data so you need to use the [] option with imshow: imshow(data, []). Now your data will show all the gray levels. Otherwise it expects that all floating point data goes between 0 and 1 and anything more than 1 gets clipped to 1, which it displays as pure white.
Try this code:
subplot(1, 2, 1);
data = 300*rand(4,3);
imshow(data, []);
title('4x3 with imshow', 'FontSize', 25);
subplot(1, 2, 2);
pcolor(data);
title('4x3 with pcolor shows as 3x2', 'FontSize', 25);
Now, how many of the 4 rows appear when you call pcolor? How many of the columns appear when you call pcolor? And how many show up with imshow()?
What do you notice about the aspect ratio of the two methods? Which one displays elements as squares, and which one doesn't?
추가 답변 (1개)
Walter Roberson
2015년 9월 20일
n = length(AllMatrices);
for K = 1 : n
this_ax = subplot(1,n,K);
this_matrix = AllMatrices{K};
pcolor(this_ax, this_matrix);
title(sprintf('Matrix #%d', K));
end
댓글 수: 3
Walter Roberson
2015년 9월 21일
After the pcolor call, add
axis equal
But most of the problem is from trying to crowd too much information in. You should consider using montage()
참고 항목
카테고리
Help Center 및 File Exchange에서 Subplots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!