how to obtain the orthogonal vectors of one 3*1 unit vector?

Hi everyone,
I have a 3*1 unit vector as r1= [ 0.6619 0.6976 -0.2740]', and want to obtain the other two unit orthogonal vectors of r1. these two vectors are named as r2 and r3, they satisfy:
R=[r1 r2 r3] is a 3*3 unit orthogonal matrix.
Could anyone tell me what commands in matlab is useful to do this? Thx very much!

 採用された回答

Matt J
Matt J 2013 年 12 月 17 日
編集済み: Matt J 2013 年 12 月 17 日

5 投票

null(r1(:).')

3 件のコメント

Stanley Cheng
Stanley Cheng 2013 年 12 月 17 日
i find svd is also okay to do this!
Matt J
Matt J 2013 年 12 月 17 日
Yes. If you look inside null.m you will see that it uses SVD, but with thresholding rules that you may not agree with.
Jeff
Jeff 2014 年 12 月 4 日
AWESOME!

サインインしてコメントする。

その他の回答 (1 件)

David Sanchez
David Sanchez 2013 年 12 月 17 日

0 投票

a = [0.6619 0.6976 -0.2740];
b = [a(1) a(3) -a(2)];
c = cross(a,b);
c = c/norm(c);
M = [a;b;c]; % orthogonal matrix

1 件のコメント

Matt J
Matt J 2013 年 12 月 17 日
Don't think so
>> M'*M
ans =
1.2669 0.0854 -0.1959
0.0854 0.6590 -0.2232
-0.1959 -0.2232 1.0738

サインインしてコメントする。

カテゴリ

製品

質問済み:

2013 年 12 月 17 日

コメント済み:

2014 年 12 月 4 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by