Effacer les filtres
Effacer les filtres

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

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

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!