2012-07-03 105 views
0

这对我来说是一个相当微不足道的错误,但我在这里看不到它。下标赋值尺寸不匹配

>> rmatrix = zeros(size(Rx,1), size(Rx,2)); 
for k = 1:size(Rx,1) 
    for l = 1:size(Rx,2) 
     rmatrix(k,l) = [Rx(k,l).^2, (Ry(k,l)).^2]; 
    end 
end 
??? Subscripted assignment dimension mismatch. 
+3

嗨,你应该学会如何用Matlab进行调试。几分钟后,你可以自己弄清楚自己的问题。 http://www.mathworks.com/help/techdoc/matlab_prog/f10-60570.html – CTZStef

回答

2
>> rmatrix = zeros(size(Rx,1), size(Rx,2)); 
for k = 1:size(Rx,1) 
    for l = 1:size(Rx,2) 
     rmatrix(k,l) = [Rx(k,l).^2, (Ry(k,l)).^2]; % CHECK THIS LINE 
    end 
end 
??? Subscripted assignment dimension mismatch. 
9
rmatrix(k,l) = [Rx(k,l).^2, (Ry(k,l)).^2]; 

你想一个1x2矩阵分配给1x1矩阵

也许你打算做到以下几点:

rmatrix = zeros(size(Rx,1), size(Rx,2),2); 
for k = 1:size(Rx,1) 
    for l = 1:size(Rx,2) 
     rmatrix(k,l,:) = [Rx(k,l).^2, (Ry(k,l)).^2]; 
    end 
end 

//编辑:这你可以做更多的事情:

rmatrix = cat(3,Rx,Ry).^2 
+0

你完全正确。感谢您的光临。 – brucezepplin

1

问题是这肯定是??

rmatrix(k,l) = [Rx(k,l).^2, (Ry(k,l)).^2]; 

您将一个向量赋值给数组的标量元素。这不是问题吗?

相关问题