2016-09-29 116 views
0

有没有什么办法可以将图形从图形窗口本身转换为csv或可导出的矩阵格式。编辑后将图形导出为csv

我们假设您想从图中删除一些点,然后想从中创建一个csv,以便将其放回到您的代码中供以后使用。

谢谢!

+2

你为什么要从图中创建一个csv文件。这是一个可怕的想法。或者将图保存为图像或将数据保存为csv,但不能将图保存为csv –

+0

因为该图有我需要摆脱的工件以更顺利地执行另一个操作。我基本上是问是否有一种方法可以从plot函数向后工作。如果您对我没有答案,为什么要麻烦回应? –

+0

这个参数没有任何建议需要csv文件。 –

回答

0

有没有简单的方法来做你在问什么;最终你需要使用对象句柄来从图中提取数据。 ()描述了如何提取XDataYData(假设你的图是一个线图);如果你不需要从图窗口本身来做,那么这个答案(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。这种方法的一个潜在优点是,如果您有许多以相同方式生成的图,则可以编写脚本来自动执行此过程。