0

我一直在尝试为 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 循环时的顺序不同。有谁可以帮我离开这里吗 ?

4

1 回答 1

1

Why won't you just use

[Q,R]=qr(A)
于 2013-04-16T21:13:47.470 回答