Azzera filtri
Azzera filtri

Interchange variable names and strings

2 visualizzazioni (ultimi 30 giorni)
Timothy Cale
Timothy Cale il 21 Feb 2012
Modificato: Asl il 21 Ott 2013
How do I convert a string to a variable name (and vice versa)?
I want to read in a string, and use it as a variable name, such as when I load a *.mat, in which the variable names depend upon which program generated/saved the *.mat.
I can see it useful to convert a variable name to a string.

Risposta accettata

Walter Roberson
Walter Roberson il 21 Feb 2012
<http://matlab.wikia.com/wiki/FAQ#How_can_I_create_variables_A1.2C_A2.2C....2CA10_in_a_loop.3F
Consider using
S = load('YourMATFile.mat');
the_var_names = fieldnames(S);
second_var = S.(the_var_names{2});
You can slice, dice, trice, even julienne!
  2 Commenti
Timothy Cale
Timothy Cale il 23 Feb 2012
Walter:
Thanks, your suggestion can be used to do what I need; i.e., to be able to load saved *.mat data into a program for which the variable names differ from those used in the saving program.
I use the form:
save('name','var1','var2' . . . . )
And as long as var1 is a variable name in the loading program, all is good.
What I "really" want to do is let the loading program read the names of the variables used in the saving program . . . But I can use the order of storage, as you suggest.
Walter Roberson
Walter Roberson il 23 Feb 2012
the_var_names in the above code would contain the variable names.
I just pulled out the second one as an example to show how you can get at the data.

Accedi per commentare.

Più risposte (1)

Doug Hull
Doug Hull il 21 Feb 2012
We need more details on what you are doing, but this is likely a bad idea. Your code is going to be very difficult to write like this, and you will be fighting MATLAB along the way quite a bit.
There are probably better ways of doing this than allowing users to define the internal variable names to your program. You would need to validate the names, write your code to handle unknown variable names, etc. There is likely a better way.
  1 Commento
Timothy Cale
Timothy Cale il 23 Feb 2012
Doug:
I got an answer which I can use for now from Walter Robeson. My comment to him explains more about what I want to do . . .
Thanks,
Tim

Accedi per commentare.

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by