sum(Array)表示索引超出矩阵维度

时间:2010-10-22 02:43:47

标签: matlab


我是Matlab的新手。我试图做一些图像匹配。图像X更大,图像Y更小。我们的目标是找到y与x的所有可能重叠,然后计算每个这样的RGB的平方差的总和重叠(即x ^ 2 + y ^ 2 + z ^ 2)。所以我在一个较大的图像中找到一个位置(i,j),从中我们选择一个图块并匹配。 这里的代码是: -

a=size(X,1)-size(Y,1);
b=size(X,2)-size(Y,2);
Z=ones(a,b);

for i=1:a
for j=1:b 
    A=[X(i:i+size(Y,1)-1,j:j+size(Y,2)-1,1)-Y(1:end,1:end,1)].^2;
    B=[X(i:i+size(Y,1)-1,j:j+size(Y,2)-1,2)-Y(1:end,1:end,2)].^2;
    C=[X(i:i+size(Y,1)-1,j:j+size(Y,2)-1,3)-Y(1:end,1:end,3)].^2;           
    T=A+B+C
    size(T)
    P=sum(sum(T))
    %Z(i,j)=sum(sum(T));
end;    
end;    

现在问题是行总和(sum(T))抛出一个错误 - 'Index超过Matrix Dimensions'。有人帮忙吗?我的目标是添加所有这些差异并将其放在矩阵Z中。

1 个答案:

答案 0 :(得分:17)

如果你已经在某处声明了变量sum,那么你可以获得这样一个错误的唯一方法就是。

运行clear sum(或clear all,或重新启动Matlab)并重试,然后一切都应该正常。