不能将两个相同大小的矩阵加在一起
Posted
技术标签:
【中文标题】不能将两个相同大小的矩阵加在一起【英文标题】:can't add two matricies of the same size together 【发布时间】:2014-04-27 01:08:27 【问题描述】:我正在尝试将两个矩阵相加。它们都是 400x400。这是给我带来麻烦的代码:
greys = (r+g+b)./3;
fc = cat(3, r, g, b);
combined = (greys+fc)./2; <---error occurs here
但是当我的代码进入 grays+fc 部分时,它会引发错误。这个错误:
使用 + 时出错
矩阵尺寸必须一致。
imgSimpleFilter 中的错误(第 36 行)
combined = (greys+fc)./2;
当我打印灰色和 fc 矩阵中的行数和列数时,我得到所有值的 400(这与我预期的完全一样,因为我使用的是 400x400 图像)。
为什么不让我把这些加在一起?
我的线路没有问题
greys = (r+g+b)./3;
这就是将三个 400x400 矩阵相加。有什么想法吗?
【问题讨论】:
你的 'fc' 矩阵是 400x400x3 矩阵,'greys' 是 400x400。 【参考方案1】:您无法添加它们,因为 greys
是 400x400,而 fc
是 400x400x3。
尝试在命令行输入size(greys)
和size(fc)
,或whos greys fc
来查看。
如果你想通过平均来“组合”它们,你可以使用bsxfun:
combined = bsxfun(@plus, greys, fc) ./ 2;
【讨论】:
以上是关于不能将两个相同大小的矩阵加在一起的主要内容,如果未能解决你的问题,请参考以下文章