如何从MATLAB中的第一个单元格数组中删除两个单元格数组之间的公共元素? 例如:
A={[1 3 2],[2 3 1],[3 1 2]} & B={[1 3 2],[3 2 1]}
A& B是两个单元阵列。我想找到A-B。为此我想删除A& A之间的共同元素。来自A的B.我怎么能这样做?
答案 0 :(得分:2)
我写了一个小函数,当A
和B
都是向量时有效:
function A = celldiff(A, B)
for ii = 1:length(B)
inA = arrayfun(@(x) isequal(A{x}, B{ii}), 1:length(A));
A = A(~inA);
end
end
定义输入的示例:
>> A={[1 3 2],[2 3 1],[3 1 2]};
>> B={[1 3 2],[3 2 1]};
>> C = celldiff(A, B);
>> C{:}
ans =
2 3 1
ans =
3 1 2