几个向量的联合

时间:2015-05-27 19:13:35

标签: matlab set

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

2 个答案:

答案 0 :(得分:4)

只需拨打一次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)

答案 1 :(得分:1)

您可以将unique应用于所有向量的串联(cat)。这允许任意数量的向量,使用从包含所有向量的单元阵列生成的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