在使用Matlab时,有时候我们需要不断的画图来达到我们的理想图形。 当plot好一幅图以后,我们想得到图中的数据点并保存下来以便以后直接调用画图,那么有什么方法可以先画图后读数据呢?
可以在画好一幅图后,在Matlab命令窗口里打如以下命令(可以把这些命令存为一段,到时候直接粘贴):
filename='我的数据.txt';
obj = get(gca,'children');
x=get(obj, 'xdata');
y=get(obj, 'ydata');
x=x(:);
y=y(:);
M=[x y];
save(filename,'M','-ascii');
这样就在当前目录下保存了你现在看到的图片的x y数据。第一行的文件名可以随便替换。
注意:该命令行只针对图中只有一条曲线的。那么还有两种图形,在保存数据时就麻烦了。
1. 一个图里面有多个曲线,这时候x和y就成了单元数组了,需要自己提取,还要判断对应的曲线
2. 一个图里subplot了多个图,这时候采用上面的命令获得的只是最后一个图的数据。
可以在画好一幅图后,在Matlab命令窗口里打如以下命令(可以把这些命令存为一段,到时候直接粘贴):
filename='我的数据.txt';
obj = get(gca,'children');
x=get(obj, 'xdata');
y=get(obj, 'ydata');
x=x(:);
y=y(:);
M=[x y];
save(filename,'M','-ascii');
这样就在当前目录下保存了你现在看到的图片的x y数据。第一行的文件名可以随便替换。
注意:该命令行只针对图中只有一条曲线的。那么还有两种图形,在保存数据时就麻烦了。
1. 一个图里面有多个曲线,这时候x和y就成了单元数组了,需要自己提取,还要判断对应的曲线
2. 一个图里subplot了多个图,这时候采用上面的命令获得的只是最后一个图的数据。
因此,建议画一个图保存一个图。
原文链接:http://blog.sina.com.cn/s/blog_8fc890a20101c5zq.html