matlab中save(FileName, 'Data', '-v7.3');什么意思?

主要是后面的那个-v7.3 是什么意思?这么写有什么用?

不错的问题。save命令在MATLAB的版本升级过程中也有过多次改进和增强,在回答这个问题之前,我也没有注意到-v7.3这个选项,所以,回答这个问题对我而言也是有收获的。

 

概括的说,

save(FileName, 'Data', '-v7.3');

按照7.3以上版本的格式把变量Data保存到FileName指定的文件中去。

 

save是MATLAB最基本的函数/命令之一,其作用是把工作区中的变量保存到文件中以备将来使用。保存文件的格式分为两大类:文本(-ascii)或二进制(-mat),默认是二进制格式。而对于二进制格式而言,又具体细分成四个版本:

    最初是MATLAB 4.x 或更早版本支持的格式,这个版本只支持二维的double数组、字符数组或稀疏矩阵三种数据类型,现在已很少使用。如果需要保存成这个版本的格式,需要指定选项-v4(但需要注意,只有5.0之后的版本才支持这个选项,4.x之前的版本就是按照这种格式存储的,无须指定,而且当时的save函数也不支持这个选项)。第二代MAT文件格式在MATLAB 5.0引入,和上一版本相比,增加了对多维数组(ND Array)、结构体(struct)和元胞数组(cell)的支持。如果要按照这种格式保存,需要指定-v6选项(类似的,只有7.0之后的版本才支持该选项)。第三代MAT格式在MATLAB 7.0引入,其特点是支持数据压缩和Unicode字符编码。数据压缩在很多情况下可以大大减少文件的存储空间,而Unicode则使得用户在不同系统中保存的数据可以互相交换。在7.3(2006b)版之后的版本可以通过-v7选项强制使用该格式。最新一代的MAT文件格式在MATLAB 7.3引入,其特点是,通过使用HDF5格式,可以支持2G以上数据的存储(需要在64位系统上)。

 

MATLAB各版本中使用save命令保存数据,如果未指定格式,所使用的默认格式分别是:4.x之前为-v4,5.x-6.x为-v6,7.0之后为-v7。就我所知,2013a的默认格式仍为-v7,但我使用的是32位系统,不确定在64位系统上是否默认为-v7.3。

 

对于7.0之后的MATLAB,可以通过Preferences对话框修改默认的存储格式,具体位置是General --> MAT-Files选项卡。

 

需要注意,高版本的load能够加载低版的MAT文件,但反过来则不可以。如果你要存储的数据可能在较低版本上使用,应该考虑采用较早的MAT文件格式。值得特别提醒的是,使用GUIDE设计用户界面的时候,存储的fig文件其实就是MAT格式,需要特别注意。

 

最后介绍一点关于HDF5的背景知识:

 

HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。HDF最早由NCSA(美国国家超级计算应用中心)开发,目前在非盈利组织HDF小组维护下继续发展。当前流行的版本是HDF5。

 

HDF5数据格式是科学计算一体化数据格式,常用于卫星遥感影像的外部存储。HDF5是一个层次型的数据存储格式,包含了数据定义和支持接口。HDF5比较适合用于那些复杂的科学数据,无法用一般的格式存放。HDF5还支持用户自定义层次型组成的各种各样的数据结构和属性。

 

更多介绍请参考:

官方网站:http://www.hdfgroup.org/

维基百科(中文):http://zh.wikipedia.org/zh-cn/HDF

维基百科(英文):http://en.wikipedia.org/wiki/Hierarchical_Data_Format

百度百科:http://baike.baidu.com/view/771949.htm

中国科学院国际科学数据服务平台:http://datamirror.csdb.cn/modis/help/help_HDF.jsp

 

零零碎碎写了一个多小时(查阅资料的时间另计),希望对楼主有帮助。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-27
成都旧事》