how to get mat file version, type(matfile) doesn't work

37 ビュー (過去 30 日間)
Kangle Li
Kangle Li 2020 年 4 月 15 日
コメント済み: Stephen23 2020 年 4 月 16 日
Hi, I tried "type(matfilename)" to get the mat file version, but this command will type out the contents of the mat file, not the version. So how to get the version of a mat file? Thanks in advance!
  1 件のコメント
Stephen23
Stephen23 2020 年 4 月 16 日
Did this behavior change? It worked for me on R2012b:
>> X = 1:3;
>> save('test.mat','X')
>> type('test.mat')
MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Thu Apr 16 11:08:37 2020

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2020 年 4 月 15 日
fread() the first 16 bytes of the file.
'MATLAB 5.0 MAT-file' -> MATLAB 5.0 or 7.0 .mat file, saved with -v6 flag or with -v7 or (typically) with no -v flag
'MATLAB 7.3 MAT-file' -> MATLAB 7.3 .mat
no 'MATLAB' string at beginning but you know it is a .mat file -> .mat saved with -v4 flag
If you need to detect whether a file was stored with -v6 versus -v7 then there would be more work involved. The header does not differentiate between the two, but since -v6 does not support compression, it would be possible to look for clues such as the existence of compressed variables
  1 件のコメント
Kangle Li
Kangle Li 2020 年 4 月 16 日
Thanks a lot for your solution!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeWorkspace Variables and MAT-Files についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by