1

matlab では、関数のメッシュ (サーフ) を作成する必要があります。次に、メッシュの等高線を表示する必要があります。最後に、等高線の方向を矢印で示す必要があります。

私はこれまでのところこれを持っています:

mesh(T); //T is the matrix [150x200] created by the function, this present me the mesh
contour(T);//this present me the contour lines
[px py]=gradient(T);//this for calculate gradient of T (px is[150x200] and also py)
contour(T), hold on, quiver(px,py), hold off //quiver is to make arrows

これはうまくいきます。等高線を見ることができますが、私の問題は、矢印が混みすぎて、私が見ているものがあまりはっきりしていないことです。px と py を希釈する必要がありますが、方法がわかりません。勾配関数の前または後に行う必要があるかどうかはわかりません。px と py が [150x200] のままで、おそらくそれらの値をゼロに置き換える必要があります。ありがとうございました!

4

1 に答える 1

1

それらのサブセットだけをサンプリングして、矢印 (px,py) を「希釈」します。例えば:

N=25; % or usea different # of points if needed
range1=unique(round(linspace(1,size(T,1),N)));
range2=unique(round(linspace(1,size(T,1),N)));
[rx ry]=meshgrid(range1,range2);
quiver(rx,ry,px(range1,range2),py(range1,range2)); %, hold off
于 2013-01-08T15:53:09.127 に答える