How to convert a large .mat file of (default format ~ 7) to a 7.3 MAT-file / HDF5 based format when the file is too large to load.
1 回表示 (過去 30 日間)
古いコメントを表示
I have a program which exports .mat files in the default .mat format - I believe it v7 MAT-file? Due to the size I am unable to load the .mat file. When attempting to load the .mat file I receive an "Error using load. Cannot read file X". I have no control over the output of the program used to generate the .mat file. Is there a way in which the .mat file may be accessed to retrieve the content? Ideally I would like to retrieve the data and save it in a v7.3 MAT-file format. Thanks!
0 件のコメント
採用された回答
Walter Roberson
2016 年 8 月 17 日
-v7 format .mat files cannot have any component which is larger than 2 gigabytes. This suggests a strategy of using load() to request particular variables from the -v7 .mat file, and write the contents to the -v7.3 .mat file (possibly using matFile)
6 件のコメント
Gaël
2021 年 3 月 4 日
I'm really new to matlab but I had to update the code like this to get it run:
in_matname = 'YourMatFileName.mat';
out_matname = 'NewMatFileName.mat';
S = whos('-file', in_matname);
for K = 1 : length(S)
thisvarname = S(K).name;
% disp(K);
% disp(thisvarname);
datastruct = load(in_matname, thisvarname);
if K == 1
save(out_matname, '-v7.3', '-struct', 'datastruct');
else
save(out_matname, '-struct', 'datastruct', '-append');
end
end
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で HDF5 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!