在Matlab中达到字符串元素的值

时间:2013-04-16 19:02:28

标签: matlab

我有一个这样的数组:

vars = {'X1','X2'};

此数组中的所有元素都具有特殊范围,例如:

X1 = [0.5,11.0];
X2 = [0.15,8.55];

现在循环中我想要达到每个元素值(即X1值为[0.5,11.0]),你能帮帮我吗?

最佳, Elnaz

3 个答案:

答案 0 :(得分:0)

我会把所有东西存放在一个结构中,但我不确定它是你想要的:

clc,clear all,close all
vars = {'X1','X2'};
X1 = [0.5,11.0];
X2 = [0.15,8.55];
res = struct(char(vars(1)),X1,char(vars(2)),X2
然后我打电话给

res.X1
res.X2

答案 1 :(得分:0)

好吧,一个选项是使用eval来获取值:

X1 = [1,2];
X2 = [3,4];
vars = {'X1','X2'};

for ii = 1:length(values)
    vals{ii} = eval(vars{ii});
end

将值存储在变量vals中,即vals = {[1,2], [3,4]}

然而,使用eval通常是一个非常糟糕的主意。根据您的想法,可能有更好的方法。例如,您可以将您感兴趣的变量存储在单元格数组中,或者存储为结构的字段。

答案 2 :(得分:0)

您也可以尝试:

vars = {'X1','X2'};
X1 = [0.5,11.0];
X2 = [0.15,8.55];

vals = containers.Map(vars,{X1,X2});

vals('X1')
vals('X2')

我从Amro的回答中得到here。这是输出:

ans =

    0.5000   11.0000


ans =

    0.1500    8.5500