2012-07-18 65 views
2

我有兩個單元陣列,其是混合的串/整數類型,例如:與混合數據類型比較單元一陽matlab的

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

我需要對它們進行比較和找到的索引中所述的B中的元素的所以在這種情況下,它會是3和2(因爲'b'在A的第三個位置)。

我會做find(strcmpi(b,a)),但我將不得不將兩個單元格數組轉換爲字符串數組,並且這不會非常有效(因爲這兩個數組都很長)。

我考慮過setxorismember但我還沒有想出如何使用它們。

什麼是這樣的問題的'matlab'方式?

回答

2

使用一個循環,或者把它包起來使用arrayfun:

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

+1:你不需要在'發現(在''first''關鍵字)'雖然... – 2012-07-18 16:36:57

+0

是的,我知道。爲了清楚起見,我總是將它與第二個參數結合使用。 – 2012-07-18 18:43:43