几个向量的并集

The union of several vectors

我有三个向量,v1v2v3,每个向量都有 500 个值。这 三个向量可能具有也可能不具有相同的值。我想知道如何 得到三个向量的并集。如果它们具有相同的值, 该值只能在联合集中显示一次。

您只需调用一次 union:

% Create random example data
rng(1);
v1  = randi(1000,[1 500]);
v2  = randi(1000,[1 500]);
v3  = randi(1000,[1 500]);

v_union = union([v1(:);v2(:)],v3)

您可以应用从包含所有向量的元胞数组生成的 unique to the concatenation (cat) of all vectors. This allows an arbitrary number of vectors, using a comma-separated list。假设所有向量都具有 相同的已知方向 (它们都是行向量,或者都是列向量)。

vectors = {[1 4 3 2], [4 5 6], [5 1 8], [4 8]};  %// row vectors
result = unique(cat(2, vectors{:}));             %// change "2" to "1" for column vectors