我有一个这样的数组:
vars = {'X1','X2'};
该数组中的所有元素都有特殊的范围,例如:
X1 = [0.5,11.0];
X2 = [0.15,8.55];
现在在一个循环中我想达到每个元素的值(即 X1 值是 [0.5,11.0]),你能帮我吗?
最好的,埃尔纳兹
我有一个这样的数组:
vars = {'X1','X2'};
该数组中的所有元素都有特殊的范围,例如:
X1 = [0.5,11.0];
X2 = [0.15,8.55];
现在在一个循环中我想达到每个元素的值(即 X1 值是 [0.5,11.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 的回答中得到的。这是输出:
ans =
0.5000 11.0000
ans =
0.1500 8.5500
我会将所有内容存储在一个结构中,但我不确定它是否是您想要的:
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
好吧,一种选择是用来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
通常是一个非常糟糕的主意。根据您想做什么,可能有更好的方法。例如,您可以将您感兴趣的变量存储在元胞数组中,或作为结构的字段。