如何使用数组中的条目来调用不同的数组条目

时间:2014-12-31 08:40:52

标签: matlab variables

我已经看过其他一些问题,但我无法得出答案,我对MatLab相对较新(但不是编程),所以如果它重复,我会道歉。

我确定标题不是很清楚所以这是一个例子:

我有一个数组,比如name = ['Jack';'Jill'];。此数组中的元素引用其他数组,例如:

Jack.income = 31000;
Jack.car = 1;
Jill.income = 55000;
Jill.car = 0;

现在,我想使用name从其他数组中提取数据,例如:

data = name(1).income,应返回31000data = name(2).car,返回0

对此的任何帮助将不胜感激。

非常感谢,

埃里克

1 个答案:

答案 0 :(得分:1)

你最好使用一组结构(或者自己创建一个对象):

people(1).name = 'Jack';
people(1).income = 31000;
people(1).car = 1;
people(2).name = 'Jill';
people(2).income = 55000;
people(2).car = 0;

现在您可以生成这样的名称列表(请参阅cell arrayscomma separated lists):

names = {people.name};

您可以将其转换为这样的索引(请参阅logical indexingismember):

ind = ismember(names, 'Jack');

然后最终提取某人的收入:

people(ind).income