Struct中的字符串比较(Matlab)

时间:2014-07-25 21:26:54

标签: string matlab struct

我需要搜索一个大型结构,并找到所有具有相同名称的组件的索引。

例如:如果名称为13hy,我需要返回数组[1,5]

 structure(1,1).name = '13hy'
 structure(2,1).name = '64hy'
 structure(3,1).name = '37hy'
 structure(4,1).name = '07hy'
 structure(5,1).name = '13hy'

我试过了:

 strcmp(structure.name,'13hy')
 ismember(structure.name,'13hy')
 strfind(structure.name,'13hy')

我不断收到错误'输入参数太多'。 请帮忙

2 个答案:

答案 0 :(得分:3)

使用arrayfun遍历结构,使用基于strcmpanonymous function来测试所需的名称:

find(arrayfun(@(n) strcmp(structure(n).name, '13hy'), 1:numel(structure)))

答案 1 :(得分:0)

使用[]:
的strcmp([structure.name], '13hy')

它链接内容并允许您像通常的变量一样压缩和使用结构。

享受!