我有兩個不同大小的數組a和b。每一個都包含獨特的價值。Matlab數組操作
我想比較兩者,如果陣列中的任值是數組b,那麼我想從B刪除它(例如a = [2 3 5]
,b = [1 8 6 2 3 7]
,導致b = [1 8 6 7]
)。
它如何在Matlab中實現?
我有兩個不同大小的數組a和b。每一個都包含獨特的價值。Matlab數組操作
我想比較兩者,如果陣列中的任值是數組b,那麼我想從B刪除它(例如a = [2 3 5]
,b = [1 8 6 2 3 7]
,導致b = [1 8 6 7]
)。
它如何在Matlab中實現?
使用intersect
3個輸出參數,以獲得元素的索引將被刪除:
[c, ia, ib] = intersect(a, b);
b (ib) = [];
使用setdiff
找到一組元素而不是其他。
setdiff(b, a)
另一個選擇是使用ISMEMBER功能經由logical indexing從b
屬於的a
成員刪除元素:
b(ismember(b,a)) = [];