1
這個問題的類似問題matrix that forms an orthogonal basis with a given vector但是我在執行時遇到問題。我有一個給定的矢量,u
,我想構造一個任意正交矩陣V
,使得V(:,1) = u/norm(u)
。我得到的問題是V'*V
不是I
(但是是對角線)。這裏是我的代碼:在matlab中創建一個給定向量的正交矩陣的問題
function V = rand_orth(u)
n = length(u);
V = [u/norm(u) rand(n,n-1)];
for i = 1:n
vi = V(:,i);
rii = norm(vi);
qi = vi/rii;
for j = i+1:n
rij = dot(qi,V(:,j));
V(:,j) = V(:,j) - rij*qi;
end
end
end