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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从matlab中的数据中提取数据?相关的知识,希望对你有一定的参考价值。

我在一个独特的.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');

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

答案

一个问题的单线程:

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

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

  • 打开文件;
  • 看看它的线系列;
  • 返回数据。

data{n,1}将包含XDataLineSeriesn,而data{n,2}将包含所述YDataLineSeries

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

    %//Prepare moving average filter of size N
    N = 5;
    f = @(x) filter(ones(1,N)/N, 1, x);

    %//Smooth out the Y data of the LineSeries
    hf = open('ttc_delay1000.fig');
    for hl = transpose(findobj(hf,'Type','line'))
            set(hl, 'YData', f(get(hl,'YData')));
    end;
    saveas(hf, 'ttc_delay1000_smooth.fig');

以上是关于如何从matlab中的数据中提取数据?的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB:提取两个figure图中的数据

MATLAB如何提取结构体中数据

MATLAB中读取excel数据

如何提取出cell中具体数据 matlab

MATLAB从入门到精通-如何用matlab来提取txt文本中的实验数据

MATLAB | 赠书 | 如何从热图中提取数据