Resave a Matlab file with v7.3 option

12 ビュー (過去 30 日間)
Riccardo Micci
Riccardo Micci 2019 年 11 月 21 日
編集済み: Ridwan Alam 2019 年 11 月 21 日
Hello,
I have few huge files with many substructures inside. I need to partially modify the content. I'm using matfile with option "'Writable',true".
I'm getting a lot of errors because although the total file is less than 2Gb, apparently once uncompressed some array is over 2 GB:
"Warning: The file 'D:\work\capture_tool\dsp\ctt_platform\input\rawdata_toronto55_matrix7x5_70g_50taps.mat' was saved in a format that does not support partial loading. Temporarily loading variable 'Push'
into memory. To use partial loading efficiently, save MAT-files with the -v7.3 flag.
Warning: Variable 'Push' was not saved. For variables larger than 2GB use MAT-file version 7.3 or later. "
If i load and save, it adds another layer in the structure which is the name of the original variable i used to load. Therefore, my program can't access it again:
temp = load('orig.mat');
save('-v7.3','mod.mat','temp')
temp2 = load('mod.mat')
temp2 =
struct with fields:
temp: [1×1 struct]
How can i automatically resave the files with option v7.3 leaving the structure untouched?
Thanks
Riccardo

採用された回答

Ridwan Alam
Ridwan Alam 2019 年 11 月 21 日
編集済み: Ridwan Alam 2019 年 11 月 21 日
The version option goes at the end on save():
save('mod.mat','temp','-v7.3');
While loading,
temp2 = load('mod.mat');
temp2 = temp2.temp;
  6 件のコメント
Riccardo Micci
Riccardo Micci 2019 年 11 月 21 日
i see what you're trying to do and actually works. The right sequence of actions is:
clear all
load('matfile.mat');
save('matfile','-v7.3');
It's a bit clumsy but makes sure the new file only includes data from the original one.
Ridwan Alam
Ridwan Alam 2019 年 11 月 21 日
編集済み: Ridwan Alam 2019 年 11 月 21 日
Cool!! Glad to help!
Please accept the answer and vote if you liked the conversation!

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

その他の回答 (0 件)

カテゴリ

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

タグ

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by