如何从matlab中的数字中提取数据?

时间:2015-11-26 09:16:58

标签: matlab user-interface plot matlab-figure

我已经在一个独特的.fig中保存了不同的Matlab图。这个数字是这样的: picture 现在,我想在这些图中引入一个滤波器以减少噪声,但遗憾的是我丢失了产生这些信号的代码。
有没有办法提取该图中每个信号的数据? 我试过这个:

open('ttc_delay1000.fig'); 
h = gcf; %current figure handle
axesObjs = get(h, 'Children');  %axes handles
dataObjs = get(axesObjs, 'Children'); %handles to low-level graphics objects in axes

objTypes = get(dataObjs, 'Type');  %type of low-level graphics object

xdata = get(dataObjs, 'XData');  %data from low-level grahics objects
ydata = get(dataObjs, 'YData');

但我很困惑,我不知道这是否是正确的行动方式。 谢谢!

1 个答案:

答案 0 :(得分:7)

解决问题的单线:

data = get(findobj(open('ttc_delay1000.fig'), 'Type','line'), {'XData','YData'});

这些步骤(从内部调用到外部调用):

  • 打开文件;
  • 查看系列文章;
  • 返回数据。

data{n,1}将包含XDataLineSeries的{​​{1}},而n将包含所述data{n,2} YData 1}}。

如果你想直接在图中平滑线条,想法是一样的:

LineSeries