質問: ax1.children.ydata; % <-- y1を取り出したいがうまくいかない % figure(2);clf(2);plot(xx1,yy1); % x1を横軸に、y1を縦軸に描画したい xlabel('x');ylabel('y');
回答: matlabのfigureファイル( .fig )から、グラフィックスに表示されている元となるデータ値を取得することはできますか? - matlab answers - matlab central (mathworks.com) 1か所だけ、やりたい事に沿わないデータ指定(xdataとすべきところをydataとしている)がありました。 また、グラフのデータが2本あるので、2本分取り出す必要があります。詳細はコードに追記しました。 clear all; clc; close all; t = 0:0.01:1; x1 = 2*cos(2*pi*5*t);y1 = 3*sin(2*pi*1.5*t); figure(1); clf(1); plot(t,x1,t,y1); xlabel('time[s]'); ylabel('y'); savefig('sine.fig'); hfig = open('sine.fig'); ax1 = hfig.children; t = ax1.children.xdata; % この解釈で良いか...? <<<< x軸=時間軸なので、その解釈で良いです xx1 = ax1.children.xdata; % x1を取り出す <<<< ydataではなくxdataです yy1 = ax1.children.ydata; % y1を取り出したいがうまくいかない <<<< 実はうまくいってます xx2 = ax1.children(2).xdata; % x2を取り出す yy2 = ax1.children(2).ydata; % y2を取り出す % figure(2);clf(2); plot(xx1,yy1); hold on; % x1を横軸に、y1を縦軸に描画したい plot(xx2,yy2); % x2を横軸に、y2を縦軸に描画(追記)する xlabel('x');ylabel('y');