MATLAB Answers

0

.mat file with structures

Asked by Joaquim on 4 Oct 2016
Latest activity Commented on by Joaquim on 5 Oct 2016
Hello everyone! I'm trying to create a .mat file with a struct inside. Something like this:
field2='TE'; value2=TE;
field3='FieldStrength'; value3=3;
field1='images'; value1=im;
field4='PrecessionIsClockwise'; value4=1;
data=struct(field1,value1,field2,value2,field3,value3,field4,value4);
save data.mat data
where 'TE' is a vector and 'im' is a 5-D complex matrix.
Then this message appears: "Warning: Variable 'data' 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 have 3 datasets and this only appears for the 2nd and 3rd dataset. For the 1st everytinh is working fine. I've already tried to use the switch case but it still doesn't work. Anyone can help me?

  1 Comment

Steven Lord
on 5 Oct 2016
What are the classes and sizes of the variables TE and im? The whos function should show both these pieces of information for these variables.

Sign in to comment.

2 Answers

Answer by Massimo Zanetti on 4 Oct 2016
 Accepted Answer

Simply use the v7.3 switch like this
save('data.mat','data','-v7.3');

  1 Comment

Joaquim on 5 Oct 2016
An if I'm using a GUI? The function uisave doesn't allow the use of more than two inputs, so I can't use the '-v7.3'.
I tried something like this:
uisave('outParams',['outParams_' PicNameWithTag],'-v7.3');
where outParams is the variable and outParams_ is the name of the saved resuls.
Thanks in advance!

Sign in to comment.


Jan
Answer by Jan
on 5 Oct 2016

You can set the default format for MAT files in the preferences menu. If you store variables in the struct, which cannot be saved in older MAT formats, there is no way to do this by uisave. But look in the code of uisave.m for building your own save dialog.

  1 Comment

Joaquim on 5 Oct 2016
Thanks! It worked perfectly!

Sign in to comment.