-1
我想用0替换矢量中的重复元素,并只保留第一次出现。用0替换矢量中的重复元素(Matlab/Octave)
如果我有像
矢量[1 1 2 2 2 3 3 3 4 4 4 4 5 5 5 5 6 6 6]
我如何能够将其转化为
[ 1 0 2 0 0 3 0 0 4 0 0 0 5 0 0 0 6 0 0]?
谢谢。
我想用0替换矢量中的重复元素,并只保留第一次出现。用0替换矢量中的重复元素(Matlab/Octave)
如果我有像
矢量[1 1 2 2 2 3 3 3 4 4 4 4 5 5 5 5 6 6 6]
我如何能够将其转化为
[ 1 0 2 0 0 3 0 0 4 0 0 0 5 0 0 0 6 0 0]?
谢谢。
a = [ 1 1 2 2 2 3 3 3 4 4 4 4 5 5 5 5 6 6 6 ];
[c, ia] = unique(a, 'first');
t = a;
t(ia) = 0;
filtered_vect = a - t;
编辑:即以更简洁的方式,破坏原始向量:
a = [ 1 1 2 2 2 3 3 3 4 4 4 4 5 5 5 5 6 6 6 ];
[c, ia] = unique(a, 'first');
a(~ismember(1:length(a),ia)) = 0;
如何create_set([1 1 2 2 2 3 3 3 4 4 4 4 5 5 5 5 6 6 6])? http://www.chemie.fu-berlin.de/chemnet/use/info/octave/octave_17.html – Marcin 2012-04-01 11:44:04