如何在matlab中找到一个单元阵列在另一个单元阵列中的索引

如何在matlab中找到一个单元阵列在另一个单元阵列中的索引,matlab,Matlab,我有两个单元阵列,比如: a = {'ci' 'fox' 'a' 'd' 'fox' 'b' 'a'} b = {'a' 'b' 'ci' 'd' 'e' 'fox'} 我需要在b中找到a中元素的索引 i、 e.我想得到这个结果: result = [3 6 1 4 6 2 1] 我尝试过使用INTERSECT,但没有成功 请注意,重复是可能的 谢谢。在您的结果=[3 6 1 4-1 2]中,您是否错误地将“a”和“b”包含在内? 假设您只取a中第一次出现的b成员: a = {'ci' 'f

我有两个单元阵列,比如:

a = {'ci' 'fox' 'a' 'd' 'fox' 'b' 'a'}
b = {'a' 'b' 'ci' 'd' 'e' 'fox'}
我需要在
b
中找到
a
中元素的索引
i、 e.我想得到这个结果:

result = [3 6 1 4 6 2 1]
我尝试过使用
INTERSECT
,但没有成功
请注意,重复是可能的


谢谢。

在您的
结果=[3 6 1 4-1 2]
中,您是否错误地将“a”和“b”包含在内? 假设您只取a中第一次出现的b成员:

a = {'ci' 'fox' 'a' 'd' 'b' 'a'}
b = {'a' 'b' 'ci' 'd' 'e' 'fox'}

result  = ones(1,length(a))*-1;
for ii=1:length(b)
   tmp = find(strcmp(a,b(ii)));
   if (tmp > 0)
       result(ii) = tmp(1);
   end
end

result
如前所述,这与:

(好)答案是:

[~,loc]=ismember(a,b)

如果它们是示例中的stings,那么您可以使用
ismember
:始终使用单个字母作为元素?它不总是单个字符,我将进行编辑以使其成为元素clear@Dan,谢谢,我来看看是的,看起来完全一样,谢谢。(我很喜欢这个…
ismember
干净多了:是的,你确实是对的