【问题标题】:Matlab: Conversion from cell to doubleMatlab:从单元格转换为双倍
【发布时间】:2016-03-14 01:38:27
【问题描述】:

我正在尝试将impixel 函数给出的颜色值存储到矩阵或某种数组中。

B = cell(301, 51);
for R = 200: 500
for C = 175 : 225
    B(R-199,C-174) = impixel(I,R,C);
end
end

我创建了一个单元格数组来保存这些值,但我不断收到以下错误:

“无法从 double 转换为单元格。”

我的错误在哪里?谢谢!

【问题讨论】:

    标签: matlab cell


    【解决方案1】:

    查看impixel 的文档,它声明其输出都属于doublesingle 类。

    在您的代码中,您将B 定义为一个元胞数组。将impixel 的输出存储在B 中没有问题。但是,如果您使用括号 () 对其进行索引,则它期望分配的值也是一个单元格。您想将impixel 的输出分配给B 的特定元素,并且需要使用花括号{} 来引用该元素。我相信将您的代码更改为

    B{R-199,C-174} = impixel(I,R,C);
    

    可能会解决您的问题。

    【讨论】:

      【解决方案2】:

      错误应该在这一行:

      B(R-199,C-174) = impixel(I,R,C);
      

      impixel 在这种情况下返回 double 类型,而 B 是 cell 类型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-28
        相关资源
        最近更新 更多