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

3 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2020 年 3 月 5 日
回答済み: MathWorks Support Team 2020 年 3 月 5 日
contour 関数で、Z 軸方向のある一つの値(レベル)に対して等高線を描画しています。
そこで描画されたラインの x,y 座標値を取得する方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2020 年 3 月 5 日
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 件)

カテゴリ

Help Center および File Exchange等高線図 についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!