Generating Plots From Cell Array
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello,
I have a cell array (3 x 4), called output, containing a 1024 x 1024 matrix in each cell. I want to plot the 4 matrices in ouput{1,:}. Furthermore, I have a structure, called dinfo, which correspondingly contains the names of each matrix (field with matrix names = "name"). I want each image to be titled with its name. Here is the code I have written thus far:
for i = 1:length(output{1,:})
figure
imagesc(output{1,i});
colormap('jet')
colorbar;
title(num2str(dinfo.name(i)))
end
I keep getting the error that "length has too many input arguments". If I change the code to avoid the length function-related error:
for i = 1:4
figure
imagesc(output{1,i});
colormap('jet')
colorbar;
title(num2str(dinfo.name(i)))
end
I get the error, "Expected one output from a curly brace or dot indexing expression, but there were 4 results".
Any thoughts on how I could resolve both of these errors?
Thank you for your time :)
댓글 수: 0
채택된 답변
Star Strider
2017년 8월 25일
This works for me (in R2017a):
dinfo.name = [1,2,3,4]; % Create Structure
output = {rand(5), rand(5), rand(5), rand(5)}; % Create Cell Array
for i = 1:length(output)
figure
imagesc(output{1,i});
colormap('jet')
colorbar;
title(num2str(dinfo.name(i)))
end
댓글 수: 2
Star Strider
2017년 8월 25일
I’m lost.
You initially wrote ‘I have a cell array (3 x 4), called output’, so I created a cell array to (successfully) test my code. Now it seems you’re addressing a structure, and structure referencing is different. I don’t have your structure array, so I can’t write code specifically to reference it in your loop. Please see the documentation on Access Data in a Structure Array (link) for details.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!