我有一个这样的数组:
vars = {'X1','X2'};
此数组中的所有元素都具有特殊范围,例如:
X1 = [0.5,11.0];
X2 = [0.15,8.55];
现在循环中我想要达到每个元素值(即X1值为[0.5,11.0]),你能帮帮我吗?
最佳, Elnaz
答案 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