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

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

Risposta accettata

Naoya
Naoya il 12 Set 2018
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 Commento
m17td024
m17td024 il 13 Set 2018
ご回答いただき誠にありがとうございます。 希望するデータを取得することができました。

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!