【问题标题】:Generating Image From Cell Array Using Imagesc Matlab使用 Imagesc Matlab 从元胞数组生成图像
【发布时间】:2018-02-03 17:55:19
【问题描述】:

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

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 个结果”。

关于如何解决这两个错误有什么想法吗?

感谢您的宝贵时间:)

【问题讨论】:

    标签: arrays matlab matrix cell


    【解决方案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)

    【讨论】:

    • 太棒了!非常感谢您简洁而有帮助的回复!
    猜你喜欢
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多