使用Imagesc Matlab从单元阵列生成图像

时间:2017-08-25 16:10:35

标签: arrays matlab matrix cell

我有一个称为输出的单元阵列(3 x 4),每个单元格中包含1024 x 1024矩阵。我想在输出{1,:}中绘制4个矩阵。此外,我有一个名为dinfo的结构,它相应地包含每个矩阵的名称(具有矩阵名称=“name”的字段)。我希望每个图像都以其名称命名。这是我到目前为止编写的代码:

for i = 1:length(output{1,:}) 
    figure 
    imagesc(output{1,i});
    colormap('jet')
    colorbar;
    title(num2str(dinfo.name(i)))
end

我不断收到“长度有太多输入参数”的错误。如果我更改代码以避免与函数相关的长度错误:

for i = 1:4 
    figure 
    imagesc(output{1,i});
    colormap('jet')
    colorbar;
    title(num2str(dinfo.name(i)))
end

我收到错误,“预计大括号或点索引表达式的一个输出,但有4个结果”。

有关如何解决这两个错误的任何想法?

感谢您的时间:)

1 个答案:

答案 0 :(得分:1)

output{1,:}comma-separated list;它包含第一行output的1024个矩阵,因此length有1024个参数。获取列数的最佳方法是使用size(...,2)

for i = 1:size(output,2)
    figure 
    imagesc(output{1,i});
    colormap('jet')
    colorbar;
end

至于第二个错误,dinfo.name有问题;可能,它也是一个以逗号分隔的列表,因为dinfo是一个结构数组。尝试使用dinfo(i).name代替dinfo.name(i)