-1

我有一个这样的数组:

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

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

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

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

最好的,埃尔纳兹

4

3 回答 3

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
于 2013-04-16T20:35:51.050 回答
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
于 2013-04-16T19:14:51.493 回答
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通常是一个非常糟糕的主意。根据您想做什么,可能有更好的方法。例如,您可以将您感兴趣的变量存储在元胞数组中,或作为结构的字段。

于 2013-04-16T19:34:02.927 回答