changing a .mat file for SPM batch process

7 views (last 30 days)
I am trying to change SPM preprocessing parameters stored in a .mat file. I've figured out MATLAB doesn't seem to allow changing the values within the cell (it gave me strange errors indicating that the entire file no longer existed when I tried to change them). What would be the easiest way to edit these variables?

Accepted Answer

Walter Roberson
Walter Roberson on 19 Sep 2013
If you are trying to change just one variable within a .mat that contains many variables, then one route is to use the -append flag at the time you save the revised variable: http://www.mathworks.com/help/matlab/ref/save.html
Note that this will cause the .mat file to get longer; the old variables will not get deleted when you use -append, they will just not be used.
Another approach is to use the matfile class, which will probably need you to use -v7.3 files.
  2 Comments
Victoria Klimaj
Victoria Klimaj on 20 Sep 2013
I'm new to Matlab, so I have a few questions about how that would work-- I have a script that uses the variables in the .mat file that I was hoping to change. By appending variables to the .mat file, these references will have to change, correct? Is this just functioning the same way as adding information in a new row or column would? Will this also be the case if I'm using the matfile class?
Or does the appending happen within a cell, functioning to essentially replace the old variable while still keeping the old information?
Thanks for your help!
Walter Roberson
Walter Roberson on 20 Sep 2013
If you use save -append, then the entire variable is replaced; it does not append on to the end of a variable, and you cannot just replace one cell in the variable.
If you use matfile then what you can change is more flexible.

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Object Programming 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!