2014-04-27 37 views
0

我想将两个基质加在一起。他们都是400x400。这里的代码,竟然放弃了我的麻烦位:不能将两个相同大小的基质加在一起

greys = (r+g+b)./3; 
    fc = cat(3, r, g, b); 
    combined = (greys+fc)./2; <---error occurs here 

但是,当我的代码获取到的灰色+ FC部分,它抛出一个错误。此错误:

Error using +

Matrix dimensions must agree.

Error in imgSimpleFilter (line 36)

combined = (greys+fc)./2; 

当我打印在灰色和FC matricies行和列的数量,我得到400的所有值(这正是我所料,因为我有一个400×400的工作图片)。

为什么不让我把它们加在一起?

我与线

greys = (r+g+b)./3; 

没有问题,而这增加3 400×400的矩阵合在一起。有任何想法吗?

+0

你的“FC”矩阵是400x400x3矩阵,“灰色”是400×400。 – oligilo

回答

3

您不能添加它们,因为greys是400x400,而fc是400x400x3。

尝试在命令行上输入size(greys)size(fc),或在whos greys fc上看到它。

如果你想通过平均它们“结合”起来,你可以使用bsxfun

combined = bsxfun(@plus, greys, fc) ./ 2; 
相关问题