contour 関数で描画したコンター図のラインの座標値を取得することはできますか?
3 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2020 年 3 月 5 日
回答済み: MathWorks Support Team
2020 年 3 月 5 日
contour 関数で、Z 軸方向のある一つの値(レベル)に対して等高線を描画しています。
そこで描画されたラインの x,y 座標値を取得する方法を教えてください。
採用された回答
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 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!