MATLAB Answers

0

The best approach to name .mat file when saving so can be loaded easily by calling

Asked by Zeynab Mousavikhamene on 10 Oct 2019
Latest activity Commented on by Walter Roberson
on 11 Oct 2019
I am saving multiple .mat files has that each are for specific parameters for example mat file number 1 has a=1, b=2, c=3 and mat file number 2 has a=2, b=5, c=10, and so on.
What type of naming do you recommend so that loading later would be easier?
For example if I name .mat file as:
a_1_b_2_c_3
or
a1_b2_c3
or
abc_123
and ...

  1 Comment

"What type of naming do you recommend so that loading later would be easier?"
The filename makes no difference to load.
How do you need it to be "easier" ?

Sign in to comment.

1 Answer

Answer by Walter Roberson
on 10 Oct 2019
 Accepted Answer

abc_123 format cannot handle distinguishing which of the parameters is multiple digits. For exampe is abc_1234 the case of a=1, b=2, c=34, or is it a=1, b=23, c=4, or is it a=12, b=3, c=4 ?
a1_b2_c3 requires either that the variable name is always a single character, or else that you search each of the part to find the last string of digits -- to break apart the 2 from the b2 for example. This could present difficulties if any of the variable names end in a digit.
a_1_b_2_c_3 permits easy splitting of the string by _ character and permits flexibility in parameter values, but does assume that none of the variable names includes an underscore.

  4 Comments

Show 1 older comment
Remember that file names are not restricted to be the same format as MATLAB variables, so it is valid to have a file name such as
a=1,b=-2,K_5=19.1.mat
You would run out at roughly 250 characters.
Use any delimiter character that is valid in filenames and which you are sure cannot occur in one of your variable names and cannot occur in the format of one of your numbers.
@Walter Roberson and when I want to call them, how can I ask the software to distingush based on the =? I mean later I need to call and load these saved files and I need the software to extract some info form the saved name, take a=1 as variable, b=-2 as variables,...
You can use regexp() 'split' or you use regexp() to create named tokens

Sign in to comment.