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

23 次查看(过去 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 个)

Community Treasure Hunt

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

Start Hunting!