查看: 677|回复: 1|关注: 0
打印 上一主题 下一主题

[已解决] 如何从 MATLAB 图形中提取数据?

[复制链接]

15

主题

30

帖子

0

最佳答案
  • 关注者: 2
跳转到指定楼层
1#
发表于 2019-6-28 18:48:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

15

主题

30

帖子

0

最佳答案
  • 关注者: 2
2#
?楼主| 发表于 2019-6-28 18:50:00 | 只看该作者
以下示例将演示如何从 MATLAB 图形中提取数据。

如果图形存储在文件中,如 example.fig,则使用 openfig 函数打开图形文件。将 Figure 对象分配给变量fig。
  1. fig = openfig('example.fig');
复制代码

如果图片已经打开,使用 gcf 函数获取 Figure 对象的属性并分配给 fig。
  1. fig = gcf;
复制代码

有几种方法可以访问绘制的图形对象的数据。您可以使用 Children 属性, 也可以使用 findobj 函数。

使用 Children 属性:
通过 Children 属性访问绘制的图形对象。Axes 对象是 Figure 的子对象。数据等通常是 Axes 的子对象。
  1. axObjs = fig.Children
  2. dataObjs = axObjs.Children
复制代码

出现在命令窗口中的 dataObjs 数组包含数据信息。不同的图形对象以不同的方式存储数据。例如,Line对象将数据存储在 XData、YData 和 ZData 中。如果 dataObjs 中的第一个元素是 Line 对象, 则使用此代码访问其数据。
  1. x = dataObjs(1).XData
  2. y = dataObjs(1).YData
  3. z = dataObjs(1).ZData
复制代码

如果 dataObjs 包含其他对象,请参考以下帮助:
http://www.mathworks.cn/help/matlab/graphics-object-properties.html


使用 findobj 函数
或者,您可以在具有特定数据属性的图形中找到所有图形对象。例如, 查找具有 YData 属性的所有图形对象。然后访问第一个对象的 YData 值。
  1. dataObjs = findobj(fig,'-property','YData')
  2. y1 = dataObjs(1).YData
复制代码



答案来源:
www.mathworks.cn/matlabcentral/answers/100687-how-do-i-extract-data-from-matlab-figures
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表