方程式をプロットした​figureファイル​(添付の.fig)か​らグラフの全データ値​(離散的に)を横軸と​縦軸の値が対応するよ​うに抽出するにはどう​すればよいでしょうか​。

22 ビュー (過去 30 日間)
m17td024
m17td024 2018 年 9 月 7 日
コメント済み: m17td024 2018 年 9 月 13 日
添付のfigureファイルから、プロットデータの値を離散的に複数個、横軸と縦軸が対応するように抽出するにはどうすればよいでしょうか。
他の質問に近いものがあり、以下のように試してみましたが、グラフの方程式に関係のない部分(横軸;左端から右端、縦軸;下端から上端)が抽出されてしまいます。z1が横軸、z2が縦軸です。
hfig = open('modea r=0 v=0.fig');
ax1 = hfig.Children;
z1 = ax1.Children.XData;
z2 = ax1.Children.YData;

採用された回答

Naoya
Naoya 2018 年 9 月 12 日
figファイルを確認してみましたところ、コンターの等高線データのようです。
等高線のデータを取得する方法ですが、Contourオブジェクトの ContourMatrix に格納される行列から取得できます。 わかり辛いかもしれませんが こちら に規則性が記述しております。
該当の figファイルからの取得は下記例のようになります。
% FigureのオープンからContour行列の取得まで
hfig = open('modea r=0 v=0.fig');
ax1 = hfig.Children;
h1 = get(ax1,'Children');
c = h1.ContourMatrix;
% Contour行列から 等高線データを取得
id = 1;
figure;
hold on
while true
n = c(2,id);
data = c(:,id+1:id+n);
plot(data(1,:),data(2,:),'r')
id = id+n+1;
if id > size(c,2)
break
end
end
hold off
  1 件のコメント
m17td024
m17td024 2018 年 9 月 13 日
ご回答いただき誠にありがとうございます。 希望するデータを取得することができました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!