3次元のベクトルプロットのしきい値処理

2 ビュー (過去 30 日間)
H.O
H.O 2023 年 9 月 3 日
コメント済み: H.O 2023 年 9 月 3 日
3次元のベクトルプロットquiver3(X,Y,Z,U,V,W)について
下記処理イメージのようにU,V,Wのいずれかに閾値を反映させたいです.
どのようにするとよいでしょうか?
●やりたいこと
1,閾値以上のベクトルを任意のカラーで着色表してプロット
2.閾値以上のデータを抽出して新規作成と保存
●処理イメージ
データ例
 x y  z  u  v  w
0.4 -5.6 202 2.0 6.0 5.0
0.3 -5.6 201 3.0 7.0 6.0
0.3 -5.6 201 4.0 8.0 7.0
0.3 -5.6 203 5.0 9.0 8.0
0.3 -5.6 201 6.0 0.0 3.0
閾値を4として,u>4 以上を抽出します
 x  y  z  u  v  w
0.3 -5.6 201 4.0 8.0 7.0
0.3 -5.6 203 5.0 9.0 8.0
0.3 -5.6 201 6.0 0.0 3.0
→このデータをベクトルプロットで表示,csvファイルなどで保存します.

採用された回答

Hernia Baby
Hernia Baby 2023 年 9 月 3 日
サンプルをつくります
A=[0.4 -5.6 202 2.0 6.0 5.0
0.3 -5.6 201 3.0 7.0 6.0
0.3 -5.6 201 4.0 8.0 7.0
0.3 -5.6 203 5.0 9.0 8.0
0.3 -5.6 201 6.0 0.0 3.0];
閾値判定:4列目 > 4を指定します
idx = A(:,4) > 4
idx = 5×1 logical array
0 0 0 1 1
該当する行列を抽出します。
B = A(idx,:)
B = 2×6
0.3000 -5.6000 203.0000 5.0000 9.0000 8.0000 0.3000 -5.6000 201.0000 6.0000 0 3.0000
プロットします。
figure
hold on
scatter3(A(:,1),A(:,2),A(:,3),"k")
scatter3(B(:,1),B(:,2),B(:,3),"r")
view(3)
保存します
writematrix(B,"sample.xlsx")
ls
sample.xlsx
readmatrix("sample.xlsx")
ans = 2×6
0.3000 -5.6000 203.0000 5.0000 9.0000 8.0000 0.3000 -5.6000 201.0000 6.0000 0 3.0000
  1 件のコメント
H.O
H.O 2023 年 9 月 3 日
ありがとうございます!

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

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeコンピューター ビジョンと Simulink についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!