Calling a variable from a variable

e.g With variables:
a b c d
V = who;
Now:
V (2) = b
b(1) = 3000 (for example)
I would like to call variable b using the newly created variable V:
e.g something like [V(2)](1) = 3000
I'm not sure where to start tbh
any help would be great,
thanks in advance,
Matt

 Akzeptierte Antwort

Matt
Matt am 13 Jun. 2011

0 Stimmen

Just done it using eval
e.g
a = eval((char(V(1,1)))); >> a (1,1);
thanks for the help guys,
Matt

Weitere Antworten (3)

Paulo Silva
Paulo Silva am 13 Jun. 2011

0 Stimmen

assignin('base',char(V(2)),3000)

1 Kommentar

Matt
Matt am 13 Jun. 2011
Thanks, Instead of putting a value into the variable I would like to check the contents.

Melden Sie sich an, um zu kommentieren.

Richard
Richard am 13 Jun. 2011

0 Stimmen

These kind of situations are best handled by storing the original data in a variable type that is designed to map strings to data. The simplest option is to use a structure which supports indexing with a string variable:
s.a = 1;
s.b = 2;
s.c = 3;
s.d = 4;
V = 'b';
s.(V) = 3000;
In some situations, you might want to look at the containers.Map object.
Matt Fig
Matt Fig am 13 Jun. 2011

0 Stimmen

I don't understand why you would want to do this, but here is a way to automate it.
clear all % Fresh start...
a = [1 2 3];
b = [4 5 6];
save myvars
N = who;
V = load('myvars')
V.(N{1})(3) % Returns a(3)

Kategorien

Mehr zu Variables finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 13 Jun. 2011

Community Treasure Hunt

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

Start Hunting!

Translated by