下标分配尺寸不匹配

时间:2012-07-03 14:24:39

标签: matlab

过去这对我来说是一个相当微不足道的错误,但我在这里没有看到它。

 >> 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 个答案:

答案 0 :(得分: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

答案 1 :(得分: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.

答案 2 :(得分:1)

问题是肯定的吗?

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

将向量分配给数组的标量元素。这不是问题吗?