Using a variable vector in a loop
古いコメントを表示
Hello, I am trying to use a large number of vectors (up to 60) for orthogonalization. Say, we have column vectors, v1, v2, v3,..., vk. To orthogonalize them using the standard method, one can proceed with
u1=v1;
u2=v2-[dot(v2,u1)/dot(u1,u1)]*u1;
u3=v3-[dot(v3,u1)/dot(u1,u1)]*u1-[dot(v3,u2)/dot(u2,u2)]*u2;
and so on. However, I want to use the generalized formula when the number of vectors gets large.
What would be best way to implement the above general formula rather? I was wondering if a "for" loop might work, as follows, but how to define vk? I get an error. vk undefined. Thanks.
for k=1:60;
j=1:k-1;
uk=0;
uk=GS+vk-[dot(vk,uj)/dot(uj,uj)]*uj;
end
採用された回答
その他の回答 (1 件)
Matt J
2021 年 12 月 4 日
1 投票
You should not use the classical Gram-Schmidt procedure, as it is numerically unstable. Use orth() instead.
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!