打开 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 文件的程序的主要内容,如果未能解决你的问题,请参考以下文章