搜档网
当前位置:搜档网 › 获取fig中曲线数据值

获取fig中曲线数据值

1 如果你的fig文件中的图像每个像素都有数据,可以通过以下方式获得图像每个点的值,输出data是矩阵,大小是图像像素的行列数

open('figname.fig');
h=get(gca,'Children');
data=get(h,'Cdata');



2 如果你的fig文件中图像是由单条曲线绘制而成,比如说plot命令生成的,通过以下方式输出横坐标,纵坐标的取值

open('figname.fig');
h_line=get(gca,'Children');%get line handles
xdata=get(h_line,'Xdata');
ydata=get(h_line,'Ydata');



3 如果你的fig文件中图像是由三维单条曲线绘制而成,比如说plot3命令生成的,通过以下方式输出x,y,z 坐标的取值

open('figname.fig');
h_line=get(gca,'Children');%get line handles
xdata=get(h_line,'Xdata');
ydata=get(h_line,'Ydata');

zdata=get(h_line,'Zdata');



4 如果你的fig文件中图像是由多条曲线绘制而成,比如说plot命令生成的,通过以下方式输出横坐标,纵坐标的取值

open('figname.fig');
lh = findall(gca, 'type', 'line');% 如果图中有多条曲线,lh为一个数组
xc = get(lh, 'xdata'); % 取出x轴数据,xc是一个元胞数组

yc = get(lh, 'ydata'); % 取出y轴数据,yc是一个元胞数组

%如果想取得第2条曲线的x,y坐标

x2=xc{2};

y2=yc{2};


1.精确度很高的方法。用MATLAB打开fig,在图像菜单栏中选择View->Property Edit,打开属性编辑器。选中要选取数据的曲线,点属性编辑器左上角的Property,打开曲线的属性页,选择XDATA、YDATA等,就得到了想要的数据了。

2.人工手动函数法。在WORKSPACE输入ginput函数(有几种不同形式,可见MATLAB的HELP),之后用鼠标在曲线图上手动选取数据就可以了,相对较方便,但精度不是很高。



有时候,我们有Matlab创建的.fig文件,但是没有原始数据。为了得到曲线的x、y坐标,可以采用下面语句:
open('name.fig'); % 该步可在Matlab中手动打开.fig图形
lh = findall(gca, 'type', 'line');
xc = get(lh, 'xdata');
yc = get(lh, 'ydata');

问提:
用ezplot画出来的图怎么获取函数值?


解决方案:
h=ezplot(f);
x=get(h,'xdata')
y=get(h,'ydata')

相关主题