2015-10-31 139 views
-1

我在用两个矩阵执行行乘法运算:ABMatlab下标赋值尺寸不匹配错误

A Subscripted assignment dimension mismatch错误在线C(1,i) = A(i,:)*B;上抛出。

我有一个语法错误导致=符号的左右两侧的尺寸不相等吗?

function C = rowproduct(A,B) 

[n,m]=size(A); 
[p,q]=size(B); 

C=zeros(1,n); 

if(m == p) 
    for i=1:n 
     C(1,i) = A(i,:)*B; 
    end 
else 
    error('matrix dimension mismatch'); 
end 
end 

回答

0

尝试C(i,:) = A(i,:)*B;

+0

更换C(1,i) = A(i,:)*B;没有解决问题。我试图用行乘法值(C(1,i))填充行向量(C)。 –

+0

奇怪......你会粘贴所有数据吗?我用这个样本进行了测试:a = rand(2,3); b = rand(3,2);'(在替换上面的代码后),它工作正常。 –

+0

我的歉意 - 我又刺了一遍,这次它有效。在我的矩阵初始化过程中出现错误,并且在某些矩阵上抛出索引错误。 –