2

我有两个单元格数组,它们是混合字符串/整数类型,例如:

a={'a';1;'b'}
b={'b';1}

我需要比较它们并找到 B 中元素的 A 中的索引。因此,在这种情况下,它将是 3 和 2(因为 'b' 在 A 中的第 3 位)。

我会这样做find(strcmpi(b,a)),但我必须先将两个单元格数组都转换为字符串数组,这不是很有效(因为两个数组都很长)。

我已经考虑过setxorismember但我还没有弄清楚如何使用它们。

像这样的问题的“matlab”方法是什么?

4

1 回答 1

2

使用循环,或使用 arrayfun 将其包装在一起:

a={'a';1;'b'}
b={'b';1}
result = arrayfun(@(x) find(arrayfun(@(y) isequal(x,y),a),1,'first'),b)
于 2012-07-18T16:07:36.477 回答