Matlab,查找单元格元素

时间:2013-08-05 12:40:15

标签: string matlab find cell

我有两个字符串A和B的单元格数组.B的所有单元格也在A中。我想在A中找到B的单元格索引。谢谢。

示例:

A=
 'aaaa'
 'bbbb'
 'cccc'
 'dddd'
 'ffff'

B=
 'ffff'
 'aaaa'

ans=
  5
  1

ans=
  1
  5

2 个答案:

答案 0 :(得分:6)

使用intersectismember

[~, idxInA] = intersect(A,B)

LocInA = find(ismember(A,B))

答案 1 :(得分:1)

您可以非常简单地使用下面的代码

indices = cell(size(B));
for i = 1:numel(B)
    indices{i} = find(strcmpi(A,B(i)));
end

虽然我建议使用ismemberintersect,但这些解决方案不会处理不区分大小写的解决方案。此外,这些方法不会指示特定索引匹配的次数,我的解决方案将返回与每次比较匹配的所有索引。

<强>更新

我正在运行以测试此代码。

A={'aaaa','bbbb','cccc','dddd','ffff','aaaa'};
B={'ffff','aaaa','cccc','qwerty'};
indices = cell(size(B));
for i = 1:numel(B)
    indices{i} = find(strcmpi(A,B(i)));
end
indices

返回以下内容

indices = 

    [5]    [1x2 double]    [3]    [1x0 double]

我没有看到你遇到问题的地方