Filter löschen
Filter löschen

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

1 Ansicht (letzte 30 Tage)
H.O
H.O am 3 Sep. 2023
Kommentiert: H.O am 3 Sep. 2023
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ファイルなどで保存します.

Akzeptierte Antwort

Hernia Baby
Hernia Baby am 3 Sep. 2023
サンプルをつくります
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 Kommentar
H.O
H.O am 3 Sep. 2023
ありがとうございます!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!