2014-03-05 145 views
0

我有一个矩阵被分配变量a。矩阵尺寸必须一致,但它们是正确的

矩阵的尺寸为< 112 * 92 UINT8>

因此我跑以下代码

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

然而,可以说,尺寸不匹配,其我无法解析原因为什么

+2

它不会工作,因为了''的尺寸为112x92和大小'b'是92x112。也许而不是'。*'操作符,你的意思是'*'? – Marcin

+0

@Marcin我用过*但它不起作用。它给出了mtimes的错误并不完全支持整数类 – aceminer

+1

您正在使用什么版本的MATLAB? – chappjc

回答

1

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

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

如果你想乘整数类型的矩阵,必须转换每到一个浮点型,繁殖并投退,例如:

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