打开 Matlab 保存的 .fig 文件的程序

Posted

技术标签:

【中文标题】打开 Matlab 保存的 .fig 文件的程序【英文标题】:Program to open .fig files saved by Matlab 【发布时间】:2012-08-07 19:32:03 【问题描述】:

有没有什么程序可以打开matlab保存的.fig文件?

【问题讨论】:

你的意思是,除了 Matlab 本身? :-) 【参考方案1】:

2016 年 4 月 29 日更新

根据johnml1135's answer,fig 文件本质上只是 mat 文件,johnml1135 找出了各种绘图元素的存储位置,用于将 fig 文件转换为 Python 绘图。

原创

根据答案here,Matlab 保存的 fig 文件是专有的二进制格式。我不知道有任何其他软件能够加载这种格式。

您最好的选择可能是根据图形的类型从 Matlab 中将图形保存为 pdf/png。

可能的解决方法

我最近注意到octave 会将 fig 文件作为结构加载,因此如果您在无法访问 Matlab 的情况下尝试打开 fig 文件,您可以尝试编写一个 octave 函数来加载 fig文件并根据struct 的内容重构绘图。不过,这可能需要了解有关情节的先验信息。

【讨论】:

其实Python/SciPy可以读取here看到的文件。 @johnml1135:感谢您提供解决方案的链接 - 看起来 fig 文件只是 mat 文件,您已经弄清楚了各种绘图项对应的结构 - 很好!【参考方案2】:

正如@mutzmatron 所提到的,.fig 不容易打开,但这主要是因为它的文档记录很差(不确定专有方面......)。正如here 所见,它们有一个与.mat 文件非常相似的简单格式,这可能会给你另一个方向。

我一直很喜欢plot2svg。它将 Matlab 图形(大多数情况下)导出为非专有矢量格式 SVG。

【讨论】:

我试过plot2svg 一次,发现它有点问题 - 但我主要想知道 svg 优于 pdf 的优缺点是什么? 是的,它有问题,Mathworks 应该开始原生支持它!优点和缺点太多了——它应该有自己的帖子。与我最相关的是大多数浏览器都原生支持 SVG,而 PDF 支持一直很困难。此外,将图像从 PDF 转换为其他内容可能会很痛苦,而 SVG 从来没有对我不好。【参考方案3】:

创建一个脚本(例如 FigViewer.m),只包含命令figure 并通过运行编译它

mcc -e -v FigViewer.m

从 Matlab 命令窗口。通过这种方式,您可以获得一个依赖于平台的应用程序,该应用程序可以在任何安装了正确版本的Matlab Compiler Runtime 的计算机上运行,​​该版本是免费提供的。如果您正在寻找有关 Matlab 编译器的更多信息,请使用 MathWorks 主页而不是 Google,因为某些信息仅在登录屏幕后可用,因此 Google 无法找到。

【讨论】:

【参考方案4】:

通过 SciPy 的 Python 能够打开一个 fig 文件 (scipy.io.loadmat),它实际上只是一个别名的 mat 文件。 This post 可以显示带有标签等的简单线图,但可以轻松扩展。从中获取数据也相当简单。

【讨论】:

【参考方案5】:

事实证明,matlab 本身中实际上有一个命令,可以让您以任何格式保存您想要归档的任何图形。试试这个:

print('theNameYouWant','-dpng')

这可以让您将图形保存为 png 文件,然后可以通过许多应用程序(如 Mac 上的 MS Paint 或 Paintbrush)打开

【讨论】:

以上是关于打开 Matlab 保存的 .fig 文件的程序的主要内容,如果未能解决你的问题,请参考以下文章

matlab2010怎么在fig图中插入竖立的文本框

matlab中如何保将显示出来的图像保存

matlab中如何修改保存图片的大小?

获得MATLAB中FIG文件的矩阵

Matlab .Fig 等效于 R

MATLAB:如何将 fig 粘贴到 excel 中,然后保存并关闭 excel 文件?