如何在.mat文件中存储fig?

时间:2012-03-05 07:03:04

标签: matlab

是否可以将matlab图存储在mat文件中,该文件存储变量。

我进入了一个场景,我从mat文件中存储的变量中生成了一些图。目前我将图形存储为单独的文件,这意味着,我有1个文件用于变量,另一个文件用于图形。但我想将它们捆绑在一个文件中。

4 个答案:

答案 0 :(得分:4)

如何在Windows资源管理器中选择这两个文件并压缩它们? ; - )

说真的,虽然我不知道一种方法可以完全按照你想要的方式做什么(确切地说,究竟是什么?)你是否希望一旦你输入load variables.mat并按下回车键就会弹出这个数字?我看到了这种方式:

您可以存储在匿名函数中生成图形所需的命令或作为字符串,并将其与所有其他变量一起保存。然后,在加载.mat文件后,在字符串上调用该函数或eval,将重新生成该图。

x=sort(rand(1,100)); y=sort(randn(1,100)); %# sample data
makefig = @() plot(x,y,'g.'); %# anonymous figure-generating function
save myDataAndFigure

clear all
load myDataAndFigure
makefig()

...或者,带字符串(例如,当包括格式化和轴标记命令时)

x=sort(rand(1,100)); y=sort(randn(1,100)); %# sample data
figcmd = 'plot(x,y,''g.''); xlabel(''sort(U(0,1)''); ylabel(''sort(N(1,0)'');'
save myDataAndFigure

clear all
load myDataAndFigure
eval(figcmd)

后者应该在涉及的数据很大时节省内存,因为匿名函数对象包含它需要的所有数据,即示例中它自己的xy的“副本”。 / p>

答案 1 :(得分:3)

有关于无花果文件格式的文章here以及它实际上是伪装的mat文件。

因此,您可以将无花果并将其数据存储在结构中并将其保存为mat文件,然后加载mat文件并使用您保存的结构制作无花果。

答案 2 :(得分:1)

如何在类的实例中存储数据和函数,以及稍后使用函数绘制数据?

答案 3 :(得分:1)

实际上这很容易做到。

假设您刚刚创建了相关数字。将图形句柄转换为结构会产生显示图形所需的相应分层元素(包括数据,标签,所有内容)。

如果需要,可以将此结构保存到mat文件,就像它是数据一样。 (实际上是这样。)再次将结构的内容作为图形查看,只需将其重新转换为带有struct2handle的句柄。

% The line below converts the current figure handle into a struct.
this_fig = handle2struct(gcf) 

% The line below converts the struct "this_fig"  back to a figure handle and displays it.    
h = struct2handle(this_fig,0);