matlab中排序为何出错


n=5;   
A=rand(n,2);  
for j=2:n        
    for i=1:j
    if A(i,1)^2+A(i,2)^2>A(j,1)^2+A(j,1)^2
        p=A(i,1);
        q=A(i,2);
        A(i,1)=A(j,1);
        A(i,2)=A(j,2);
        A(j,1)=p;
        A(j,2)=q;
    end  
    end
end  



请问 我这个程序错在哪啊?为什么出来的不是按大到小排列的一个数组呢。


n=5;
A=rand(n,2);
for i=1:n-1
    for j=i+1:n
        if A(i,1)^2+A(i,2)^2>A(j,1)^2+A(j,1)^2
            p=A(i,1);
            q=A(i,2);
            A(i,1)=A(j,1);
            A(i,2)=A(j,2);
            A(j,1)=p;
            A(j,2)=q;
        end
    end
end
A