matlab:在混合数组中找到元素的位置

时间:2017-07-19 09:08:01

标签: arrays matlab

我有一个具有以下结构的数组:

{ 
  { 'attr1', { 'val1', 'val2', 'valn'} },
  { 'attr2', { 'val4' } },
  { 'attr3', { 'val5', 'val6', 'valn'} }
}

如何检查attr2元素的索引,例如?

我发现some questions关于在数组中查找元素,但它们是统一数组,而不是像我的情况那样的混合数组。

1 个答案:

答案 0 :(得分:1)

你可以使用 strfind 。但由于给定的对象是嵌套单元格,因此会产生位问题。以下方法怎么样?

str = { 
  { 'attr1', { 'val1', 'val2', 'valn'} },
  { 'attr2', { 'val4' } },
  { 'attr3', { 'val5', 'val6', 'valn'} }
} ;

str1 = [str{:}] ;
attrs = str1(1:2:end) ;    % pick the attributes alone 
idx = strfind(attrs, 'attr2');
idx = find(not(cellfun('isempty', idx)));

iwant = str{2}