如何从MATLAB的fig文件中提取原始数据?

如题所述

可以通过get来获取相关数据,比如当前打开了该figure窗口:clc; clear all; close all;
x = 0 : 0.5 : 2*pi;
y = sin(x);
figure;
plot(x, y);h = get(gca, 'children');
x1 = get(h(1), 'xdata')
y1 = get(h(1), 'ydata')
x1 = Columns 1 through 11 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 Columns 12 through 13 5.5000 6.0000
y1 = Columns 1 through 11 0 0.4794 0.8415 0.9975 0.9093 0.5985 0.1411 -0.3508 -0.7568 -0.9775 -0.9589 Columns 12 through 13 -0.7055 -0.2794>>
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-19
用MATLAB编程时,常常遇到这样的问题,图形保存了下来,但数据却没有保留。MATLAB的图形相当于一个嵌套的结构(对象),可以通过各种属性来访问其中的数据。下面这段程序可以用来从图形中把数据找回来,这是一个从曲线中提取一维数组的例子。
% fnam是文件名
open('fnam.fig');
% 取出曲线的handle,这里gca表示当前图形的
CurrentAxes属性
% 如果图中有多条曲线,lh为一个数组
lh = findall(gca, 'type', 'line');
% 取出x轴数据
xc = get(lh, 'xdata');
% 取出y轴数据
yc = get(lh, 'ydata');
也可以把图形保存下来,然后用import命令导入,所有属性会被存储为变量,可以直观的寻找到所需要的数据。一般数据是存在children里面的properties的xdata和ydata,类型type是line,或者是在cdata内。本回答被网友采纳
相似回答