stream2の計算ができない原因

2 vues (au cours des 30 derniers jours)
知真 梶山
知真 梶山 le 24 Oct 2023
Commenté : 知真 梶山 le 25 Oct 2023
stream2関数を使用した流線の計算方法に関する質問です.
ベクトル場の流線をstream2で計算しようとしたところ,一部分のみしか計算できず困っています.
ベクトルデータの座標 x,y(100×100の2-D行列)とベクトルデータの成分u,v(NaNを含む)があります.
これらのデータは以下のfigureのようになっており,このベクトル場の流線を計算したいです.
load data.mat
p = figure(1)
p =
Figure (1) with properties: Number: 1 Name: '' Color: [1 1 1] Position: [671 558 577 433] Units: 'pixels' Use GET to show all properties
quiver(x,y,u,v) % ベクトル場の表示
p.Position(3:4) = [735 735];
流線の開始位置をstartX,startYとし,stream2で計算しようとしたところ,開始位置によって計算できる場合とできない場合があります.
流線の開始位置はベクトル場の左端と下辺です.
vert = stream2(x,y,u,v,startX,startY); % 流線の計算
q = figure(2)
q =
Figure (2) with properties: Number: 2 Name: '' Color: [1 1 1] Position: [671 558 577 433] Units: 'pixels' Use GET to show all properties
quiver(x,y,u,v) % ベクトル場の表示
hold on
plot(startX,startY,'o') % 流線の開始位置
streamline(vert) % 流線の表示
hold off
q.Position(3:4) = [735 735];
ベクトル場は全体的に右上方向を向いており,流線を計算すること自体は可能だと思うのですが,下辺を開始位置としている場合なぜか計算ができていません.
これらの原因がわかる方はいらっしゃいますか?
  2 commentaires
Atsushi Ueno
Atsushi Ueno le 24 Oct 2023
原因は分かんないですが、Y座標をほんの少しずらすと”流れに乗り”ました。
websave("data.mat","https://jp.mathworks.com/matlabcentral/answers/uploaded_files/1519811/data.mat");
load data.mat
startY = startY + 0.001; % <<<---これ
vert = stream2(x,y,u,v,startX,startY); % 流線の計算
quiver(x,y,u,v); % ベクトル場の表示
hold on
plot(startX,startY,'o'); % 流線の開始位置
streamline(vert); % 流線の表示
hold off
知真 梶山
知真 梶山 le 25 Oct 2023
回答ありがとうございます.
こちらの方法で解決できそうです.
ありがとうございました.

Connectez-vous pour commenter.

Réponses (0)

Produits


Version

R2023a

Community Treasure Hunt

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

Start Hunting!