Problem with save function
Show older comments
Hey there.
I'm trying to save a variable to file, but Matlab is acting a bit silly. When in-script I call the save function, it returns the following warning:
Warning: Variable 'result' cannot be saved to a MAT-file whose version is older than 7.3.
To save this variable, use the -v7.3 switch.
Skipping...
I've been reading the documentation and it seems it's because the file would be greater than 2 GB (which is simply not possible!). The variable in question, 'result', is a structure consisting on: result.iteration (size 100x1) method.fold (size 12x1) value(size 2x1). If all values are double, it shouldn't take more than 20 KB on disk, I think.
Anyway, following Matlab's own advice, I tried using the '-v7.3' flag, and I ended up with an enormous file of more than 5 GB in size! This makes no sense!
On the other hand, not trying to give up, I tried to directly save the variable using the contextual menu (right click on variable, 'save as...') and ended up with a more reasonable size of ~300 KB.
I have two questions regarding this issue. First, what is wrong with Matlab? And second, how can I implement in-script the same 'save as...' function as the one in the contextual menu?
Thanks a lot for your help!
8 Comments
Geoff Hayes
on 13 Oct 2016
Françoise - out of curiosity, what is returned when you try
whos result
What is assigned to the Bytes column?
Françoise
on 13 Oct 2016
Walter Roberson
on 13 Oct 2016
Please show the output of
FN = fieldnames(results);
for K = 1 : length(FN)
TFN = FN{K};
TF = results.(TFN);
fprintf('results.%s is class "%s" and size [', TFN, class(TF));
fprintf('%d ', size(TF));
fprintf(']\n');
end
Françoise
on 13 Oct 2016
Walter Roberson
on 13 Oct 2016
And this too please
FN = fieldnames(results.iter);
for K = 1 : length(FN)
TFN = FN{K};
TF = results.iter.(TFN);
fprintf('results.iter.%s is class "%s" and size [', TFN, class(TF));
fprintf('%d ', size(TF));
fprintf(']\n');
end
Françoise
on 13 Oct 2016
Walter Roberson
on 13 Oct 2016
Hmmm, there is no obvious reason why that structure could not be easily saved.
Wait... I just noticed the message you posted is about variable 'result' and what you have shown us is about variable 'results' . Is it possible that you have a different variable 'result' that is not at all the same?
Françoise
on 13 Oct 2016
Accepted Answer
More Answers (0)
Categories
Find more on Performance and Memory in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!