Calling a variable from a variable

24 次查看(过去 30 天)
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

采纳的回答

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

更多回答(3 个)

Paulo Silva
Paulo Silva 2011-6-13
assignin('base',char(V(2)),3000)
  1 个评论
Matt
Matt 2011-6-13
Thanks, Instead of putting a value into the variable I would like to check the contents.

请先登录,再进行评论。


Richard
Richard 2011-6-13
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 2011-6-13
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)

类别

Help CenterFile Exchange 中查找有关 Whos 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by