2

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

例子:

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

B=
 'ffff'
 'aaaa'

ans=
  5
  1

或者

ans=
  1
  5
4

2 回答 2

6

使用intersectismember

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

或者

LocInA = find(ismember(A,B))
于 2013-08-05T12:46:50.007 回答
1

你可以很简单地做到这一点,使用下面的代码

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

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

更新

我正在运行的代码来测试这个。

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]

我看不出你哪里有问题

于 2013-08-05T12:46:10.363 回答