matlab中save(FileName,'Data','-v7.主要是后面的那个-v7.3 这么写有什么用?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 00:22:52
matlab中save(FileName,'Data','-v7.主要是后面的那个-v7.3 这么写有什么用?

matlab中save(FileName,'Data','-v7.主要是后面的那个-v7.3 这么写有什么用?
matlab中save(FileName,'Data','-v7.
主要是后面的那个-v7.3 这么写有什么用?

matlab中save(FileName,'Data','-v7.主要是后面的那个-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

 

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