Resave a Matlab file with v7.3 option

12 次查看(过去 30 天)
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 CenterFile Exchange 中查找有关 Workspace 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