Matlab:从单元格转换为双单元格

时间:2016-03-13 17:19:31

标签: matlab cell

我试图将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转换为单元格。"

我的错误在哪里?谢谢!

2 个答案:

答案 0 :(得分:2)

查看impixel的文档,它指出其输出都是类doublesingle

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

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

可以解决您的问题。

答案 1 :(得分:0)

错误应该在这一行:

B(R-199,C-174) = impixel(I,R,C);
在这种情况下,

impixel返回了double类型,而B是cell类型。