stream2の計算ができない原因

2 次查看(过去 30 天)
知真 梶山
知真 梶山 2023-10-24
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 个评论
Atsushi Ueno
Atsushi Ueno 2023-10-24
原因は分かんないですが、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
知真 梶山
知真 梶山 2023-10-25
回答ありがとうございます.
こちらの方法で解決できそうです.
ありがとうございました.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 ベクトル場 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!