グラフでの座標の最大値、最小値を出すにはどうすればいいですか?
35 ビュー (過去 30 日間)
古いコメントを表示
biplotでグラフを出しました。
このグラフにおける成分1, 成分2の最大値, 最小値を出す方法をご教授ください。
0 件のコメント
採用された回答
Hernia Baby
2022 年 11 月 15 日
編集済み: Hernia Baby
2022 年 11 月 15 日
まずデータを作ります
clear; clc; close all
u1=5*randn(1,10000);
u2=randn(1,10000);
x1=1/2^0.5*u1+1/2^0.5*u2;
x2=1/2^0.5*u1-1/2^0.5*u2;
X=[x1 ; x2]';
pcaを行います
[coef, score] = pca(X);
biplot(coef,'Scores',score);
---------
以降が本題です
ここで注意ですがベクトルの方向によって最大と最小が逆になります
このグラフでと書いていますので正規化して算出しています
Cp1_max_min = [max(score(:,1)),min(score(:,1))]./max(abs(score),[],'all')
Cp2_max_min = [max(score(:,2)),min(score(:,2))]./max(abs(score),[],'all')
最大値だけ図示してみましょうか
figure
hold on
biplot(coef,'Scores',score);
[~,idx] = max(score(:,1));
cp1max = score(idx,:);
[~,idx] = max(score(:,2));
cp2max = score(idx,:);
cpmax = [cp1max;cp2max];
scatter(cpmax(:,1)./max(abs(score),[],'all'),cpmax(:,2)./max(abs(score),[],'all'),'k')
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!