contour 関数で描画したコンタ​ー図のラインの座標値​を取得することはでき​ますか?

3 次查看(过去 30 天)
contour 関数で、Z 軸方向のある一つの値(レベル)に対して等高線を描画しています。
そこで描画されたラインの x,y 座標値を取得する方法を教えてください。

采纳的回答

MathWorks Support Team
contour 関数に第1出力引数を付加することで、等高線の x,y 座標値を取得することが可能です。
なお、contour 関数から取得される行列の定義が、独自のルールに従って生成されることに注意してください。
詳細は、以下の URL より contour 関数のヘルプドキュメント M をご覧ください。
・contour : M — 等高線行列
以下は、デモデータ peaks の contour 図の 1 つのレベルに対する x,y 座標を取得する例です。
この例では、contour 図の 1 つのレベルだけであっても、複数のラインで示されることがあるため、各セットごとにセル配列に格納しています。
Z = peaks;
H = figure(1);
val = 0; % Z の値を指定
M = contour(Z,[val,val]);
n = 1; % 行列 M 内のセットを表すためのインデックス
ii = 1; % 座標を格納するための配列のインデックス
while 1
if n > length(M)
break
end
N = M(2,n);
data{ii} = M(:,n+1:(n+N));%#ok
n = n+1+N;
ii = ii+1;
end
% Z=0 のラインを重ね書き
figure(2)
hold on
cellfun(@(x)plot3(x(1,:),x(2,:),ones(1,size(x,2))*val,'Color','r'),data)

更多回答(0 个)

标签

尚未输入任何标签。

Community Treasure Hunt

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

Start Hunting!