stream2の計算ができない原因
    1 view (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 Annotations 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!



