从矩阵matlab中删除重复的元素

时间:2013-12-28 21:58:28

标签: matlab matrix

使用matlab时遇到一些问题。我正在尝试制作一个新的矩阵2x5000(时间和位置),我需要删除其中我的时间值与以前相同的单元格。

第二件事:我有两个向量,我需要创建一个新的向量,其中我有第一个向量中的第一个元素,第二个来自第二个向量一个,依此类推(第三个从第一个,第四个从第二个) 。

怎么做?

2 个答案:

答案 0 :(得分:2)

第一个问题:使用unique的第二个输出参数,它返回非重复元素的索引。

第二个问题:

%example data
A=[1,2,3,4]
B=[5,6,7,8]
%connect to a matrix
C=([A;B])
%convert to a vector
C=C(:)

答案 1 :(得分:0)

脚本:

close all; clear all;

v1 = [1 2 3 4 5; 0.1 0.2 0.3 0.4 0.5];
v2 = [1 2 3 4 5; 0.15 0.25 0.35 0.45 0.55];

% merge
v12 = zeros(size(v1, 1), size(v1, 2) + size(v2, 2));
v12(:, 1:2:end) = v1;
v12(:, 2:2:end) = v2;
v12

% unique
i = 1;
while i < size(v12, 2)
  items = find(v12(1, i) == v12(1,:));
  if length(items) > 1
    items = items(2:end);
    v12(:, items) = [];
  end
  i = i + 1;
end
v12

输出:

v12 =

   1.00000   1.00000   2.00000   2.00000   3.00000   3.00000   4.00000   4.00000   5.00000   5.00000
   0.10000   0.15000   0.20000   0.25000   0.30000   0.35000   0.40000   0.45000   0.50000   0.55000

v12 =

   1.00000   2.00000   3.00000   4.00000   5.00000
   0.10000   0.20000   0.30000   0.40000   0.50000