Show older comments
固有ベクトルを算出するときにベクトルの符号を指定することは可能でしょうか?
4 Comments
具体的にはどのようなものでしょうか?
例えば
X = [-1,1,2]
を
Xi = - X
のようにする形ですか?
Kohei Nishizawa
on 26 Sep 2022
※修正:日本語がおかしかったので書き直しました
----------
可能です。
どのように指定するかで回答を考えたいので、具体的な内容をお聞きしたいです。
その前に、まずはシンプルな例で検証をしてみましょう。
X = [-1,1,2];
Xi = MyEigVec(X)
function y = MyEigVec(x)
if x(1) < 0
y = - x;
else
y = x;
end
end
Kohei Nishizawa
on 27 Sep 2022
Accepted Answer
More Answers (1)
Kohei Nishizawa
on 28 Sep 2022
0 votes
6 Comments
Hernia Baby
on 28 Sep 2022
こちらは1と2が対応するという意味でよろしいでしょうか?
Kohei Nishizawa
on 28 Sep 2022
A(:,:,1)の符号にすべて合わせるという認識でしょうか?
clc,clear
A = [-0.0449 -0.5388 -0.8413; -0.6687 0.6418 -0.3754; 0.7422 0.5457 -0.3891];
A(:,:,2) = [-0.0453 -0.5361 -0.8429; -0.6897 0.6272 -0.3618; 0.7227 0.5649 -0.3982];
A(:,:,3) = [0.0464 0.5318 -0.8456; 0.7089 -0.6139 -0.3472;-0.7038 -0.5834 -0.4055];
A(:,:,4) = [0.0469 -0.5288 -0.8475; 0.7276 0.5994 -0.3337;-0.6844 0.6010 -0.4128];
% 符号のみ抽出
Sgn_A = sign(A);
idx = ones(size(A));
以下を変えています
% 1番目の符号にすべて合わせる
for ii = 2:size(A,3)
idx(:,:,ii) = Sgn_A(:,:,ii).*Sgn_A(:,:,1);
end
B = A.*idx;
sign(B)
Kohei Nishizawa
on 28 Sep 2022
すみません、少し教えてください。
「ベクトルの方向が変わっていない」というのは、どこを指しますか?
B = [-0.0412 -0.7211 -0.6916; -0.0365 0.6928 -0.7202; 0.9985 -0.0045 -0.0549];
B(:,:,2) = [-0.0417 -0.7310 -0.6811; -0.0515 0.6823 -0.7292; 0.9978 0.0046 -0.0661]
上記ですと1と2の各列ベクトルは異なるように思えます。
Categories
Find more on リサンプリングの手法 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!