我有两个字符串 A 和 B 的单元格数组。B 的所有单元格也在 A 中。我想在 A 中找到 B 的单元格的索引。谢谢。
例子:
A=
'aaaa'
'bbbb'
'cccc'
'dddd'
'ffff'
B=
'ffff'
'aaaa'
ans=
5
1
或者
ans=
1
5
使用intersect
或ismember
[~, idxInA] = intersect(A,B)
或者
LocInA = find(ismember(A,B))
你可以很简单地做到这一点,使用下面的代码
indices = cell(size(B));
for i = 1:numel(B)
indices{i} = find(strcmpi(A,B(i)));
end
虽然我确实建议使用ismember
or 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]
我看不出你哪里有问题