Matlab矢量化

Matlab矢量化,matlab,vectorization,Matlab,Vectorization,我一直在尝试为matlab将此函数矢量化: function [Q,R]=gramSchmidtMod(A) n=size(A,1); R=zeros(n); for j=1:n R(j,j)=norm(A(:,j)); Q(:,j)=A(:,j)/R(j,j); for i=j+1:n R(j,i)=Q(:,j)'*A(:,i); A(:,i)=A(:,i)-Q(:,j)*R(j,i); end end 结束 我试过: j

我一直在尝试为matlab将此函数矢量化:

function [Q,R]=gramSchmidtMod(A)

n=size(A,1);
R=zeros(n);
for j=1:n
    R(j,j)=norm(A(:,j));
    Q(:,j)=A(:,j)/R(j,j);
    for i=j+1:n
        R(j,i)=Q(:,j)'*A(:,i);
        A(:,i)=A(:,i)-Q(:,j)*R(j,i);
    end


end
结束

我试过:

j=1:n
    R(j,j)=norm(A(:,j));
    Q(:,j)=A(:,j)/R(j,j);
     i=j+1:n
        R(j,i)=Q(:,j)'*A(:,i);
        A(:,i)=A(:,i)-Q(:,j)*R(j,i); 
但这与使用两个for循环时的顺序不同。
有人能帮我吗?

你为什么不直接用

[Q,R]=qr(A)

您的最后一个操作是对(:,i)的赋值,您不会将其作为输出返回,那么这是为了什么?我不想提供一个矢量化,因为原始代码有缺陷,最终无法给出正确的结果。