矩阵维度必须一致,但它们是正确的

时间:2014-03-05 04:55:47

标签: matlab matrix

我有一个矩阵,它被赋予变量a。

矩阵的大小为< 112 * 92 uint8>

因此我运行了以下代码

b = a'; c = b .*a;

然而,据说维度与我无法解决的原因不匹配

1 个答案:

答案 0 :(得分:1)

您展示的示例是执行元素乘法,其中两个矩阵必须具有相同的形状。

从您给@ Marcin的问题的答案中我假设您最初尝试进行矩阵乘法a*b,其中矩阵维度是兼容的,并收到您提到的eroor消息。导致此消息的问题与矩阵维度无关:Matlab不支持类型为uint8的矩阵的矩阵乘法运算符,只支持将此类型的矩阵乘以标量的重载。事实上,对于任何整数类型都是如此。

如果要将整数类型的矩阵相乘,则必须将每个矩阵转换为浮点类型,乘以并强制转换,例如:

 c = uint8(single(a)*single(b'));