stream2の計算ができない原因
2 views (last 30 days)
Show older comments
stream2関数を使用した流線の計算方法に関する質問です.
ベクトル場の流線をstream2で計算しようとしたところ,一部分のみしか計算できず困っています.
ベクトルデータの座標 x,y(100×100の2-D行列)とベクトルデータの成分u,v(NaNを含む)があります.
これらのデータは以下のfigureのようになっており,このベクトル場の流線を計算したいです.
load data.mat
p = figure(1)
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)
quiver(x,y,u,v) % ベクトル場の表示
hold on
plot(startX,startY,'o') % 流線の開始位置
streamline(vert) % 流線の表示
hold off
q.Position(3:4) = [735 735];
ベクトル場は全体的に右上方向を向いており,流線を計算すること自体は可能だと思うのですが,下辺を開始位置としている場合なぜか計算ができていません.
これらの原因がわかる方はいらっしゃいますか?
2 Comments
Atsushi Ueno
on 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
Answers (0)
See Also
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!