save a variable nameing it after a string
Emil asked
on 3 Feb 2012
Latest activity:
Answer by Sean de Wolski
on 3 Feb 2012
I have several matrices that I would like to save in a loop. I've tried to read all the save documents but it doesnt seam to work. I can save the matrix using a string and it becomes like A150.mat but I also want the matrix inside to be called that as well. The problem is that save() saves the matrix after what its called so when I get the name as a string(imported from a document outside matlab) its impossible to give the matrix that name. Thanks for any help Products |
|---|
can you not import the string prior to saving? something like:
... str = importFun(file); eval([str ' = matToSave;']) save([str '.mat'],str) eval(['clear ' str]) clear str
I should add, thanks to Sean for the reminder about the dangers of eval, that if you somehow get str = 'clear all', you're hosed, so you might want to put a check in there to make sure that the str is actually a variable.
exist(str,'var')
Also the last two lines should just be:
clear(str,'str')
There can be more evil problems then "eval('clear all')":
str = 'x; system(''format C:'')'
eval(['clear ', str])
;-)
Thank you, it worked perfectly! :)
Contact us at files@mathworks.com
0 comments