使用matlab时遇到一些问题。我正在尝试制作一个新的矩阵2x5000(时间和位置),我需要删除其中我的时间值与以前相同的单元格。
第二件事:我有两个向量,我需要创建一个新的向量,其中我有第一个向量中的第一个元素,第二个来自第二个向量一个,依此类推(第三个从第一个,第四个从第二个) 。
怎么做?
答案 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