不能将两个相同大小的矩阵加在一起

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;

【讨论】:

以上是关于不能将两个相同大小的矩阵加在一起的主要内容,如果未能解决你的问题,请参考以下文章

将 numpy 数组复制到 Panda 多索引中(大小相同)

numpy将相同子维度的矩阵堆叠在一起[重复]

比较两个不同大小的矩阵以制作一个大矩阵 - 速度改进?

在同一个图上一起绘制两个距离矩阵?

OpenCV 断言在矩阵乘法上失败

重塑矩阵