2017-01-26 2 views
1

次のsurfプロットでは、z = 0.5に線を描こうとしています。コードは簡単ですが、例えば0.533のプロットにsurfという行を含めたいと思います。私のパラメータはXqYqVqです。これはMATLABのsurfコマンドに入力しました。 Xq,YqおよびVqはすべてmeshgridによって生成された2001x4001マトリックスです。私はVqの点が特定の許容差を与えて0.5に等しいことを発見し、findコマンドからx座標とy座標を取得しますが、ここからは迷っています。特定のz値のサーフェスプロットにラインを追加する

これを達成する最も良い方法は何ですか?

enter image description here

答えて

2

あなたはあなたの表面が0.5に等しい線を描画するためにcontour3を使用することができます。 4番目の入力引数を使用して、Vqが0.5の3D線を指定することができます。

% Load in some sample data 
[Xq, Yq, Vq] = peaks(); 

% Plot your surface 
surf(Xq, Yq, Vq, 'EdgeColor', 'none'); 
hold on 

% Now plot the 3D contour 
contour3(Xq, Yq, Vq, [0.5 0.5], 'k'); 

enter image description here

あなたがその輪郭に関連付けられているXqYq値を取得したい場合は、輪郭に関連したContourMatrix

values = contour3(Xq, Yq, Vq, [0.5 0.5], 'k'); 
を返します出力と contour3を呼び出すことができます
+0

ニート!私は多くのデータを持っているので、私は黒プロットの解決策を見つける必要があります – woofwoof

+0

ああ、それは美しく動作します! – woofwoof

関連する問題