比较单元格数组与混合数据类型matlab

时间:2012-07-18 15:57:09

标签: matlab

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

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

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

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

我考虑过setxorismember,但我还没想出如何使用它们。

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

1 个答案:

答案 0 :(得分:2)

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

a={'a';1;'b'}
b={'b';1}
result = arrayfun(@(x) find(arrayfun(@(y) isequal(x,y),a),1,'first'),b)