如何从MATLAB中确定MAT文件的版本?

7

我想知道是否有一种方法可以确定特定的MAT文件是v4、v6、v7还是v7.3版本?

我正在寻找一种解决方案,可以使用MATLAB代码确定版本,最好不需要将数据加载到内存中。


4
每个文件的开头都有一条注释,请使用 type 命令将其显示出来。它说对于版本 6 和版本 7,值为 5.0,不太清楚发生了什么。 - Daniel
@Daniel 非常有用 - 我不知道。你应该将其作为答案,我会点赞。 - Sam Roberts
仅补充@Daniel的评论,v4文件似乎没有注释头,v6v7文件有一个标头说5.0,而v7.3文件有一个标头说7.3。 - Sam Roberts
@Daniel 有没有办法将“type”命令的前几行输出捕获到一个变量中?这也可能会有所帮助。 - Berk U.
1个回答

8

在mat文件版本6或之后的开头,会有一些注释。以下代码可以读取它:

function txt=getMatComment(x)
fid=fopen(x);
txt=char(fread(fid,[1,140],'*char'));
txt=[txt,0];
txt=txt(1:find(txt==0,1,'first')-1);
end

看起来评论总是116个字符长,但我没有找到任何参考资料。这段代码读取140个字符并在末尾截断。

我不理解的部分:对于版本6或7,它说MATLAB 5.0 MAT-file


对于您的最后一个问题,我认为答案在表格的第二列中:https://fr.mathworks.com/help/matlab/import_export/mat-file-versions.html - bbercz
更准确地说,getMatComment 的输出与文件版本之间的对应关系在 MATLAB 首选项(常规/MAT-文件)中给出,如下图所示(来自 R2019b)。 - bbercz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接