编辑后将图形导出到csv

时间:2016-09-29 16:50:47

标签: matlab

有没有办法可以从绘图窗口本身将数字转换为csv或可导出的矩阵格式。

就像让我们说你想从一个情节中删除一些点,然后想要从它创建一个csv以重新放入你的代码供以后使用。

谢谢!

1 个答案:

答案 0 :(得分:0)

没有一种简单的方法可以做你要求的事情。最终你需要弄乱对象句柄来从图中提取数据。

如果您不需要从绘图窗口本身执行此操作,则此答案(How to export data from the graph in Matlab?)将介绍如何提取XDataYData(假设您的情节)是一个线图);然后,您可以使用csvwrite保存它:

% Assuming that the data is a line or scatterplot
line_obj_handles = findobj(gca,'type','line');
% This will get the first line, modify this if you need a different one
handle = line_obj_handles(1);
% Extract the data
x = get(handle, 'XData');  % In R2014b or newer, x = handle.XData; also works
y = get(handle, 'YData');
csvwrite('data.csv', [x(:), y(:)]);

如果你有多个情节,你需要在line_obj_handles上进行for循环。

如果您真的想从绘图窗口中执行此操作,可以将该图保存为.fig文件。这将包含图中的所有数据;您可以稍后加载图形并执行相同的过程来提取X / Y数据并将其写入CSV。如果您以相同的方式生成许多绘图,则此方法的潜在优势在于您可以编写脚本来自动执行此过程。