finding duplicate number and adjacent row value

4 次查看(过去 30 天)
Suppose I have a matrix of values
v = [1 4; 1 5; 2 4; 2 4; 2 5; 2 5; 3 4; 3 7]
in column one the numbers are consecutive but with repetition, how can I find only the first numbers and corresponidng number in the other column, put them in a new matrix (v')? The new matrix should be like this from my example:
v'= [1 4; 2 4; 3 4]
I hope I am clear enough
Cheers
Sobhan

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2012-9-16
v = [1 4; 1 5; 2 4; 2 4; 2 5; 2 5; 3 4; 3 7]
idx=diff(v(:,1))
v1=[];
if idx(1)==0
v1=[v1;v(1,:)]
end
for k=2:length(idx)
if idx(k)==0 & idx(k-1)~=0
v1=[v1; v(k,:)]
end
end
  1 个评论
Sobhan
Sobhan 2012-9-16
Dear Azzi, your solution worked perfectly! Thanks a lot. Wayne`s method gave an error. Anyhow, thanks a lot to both of you

请先登录,再进行评论。

更多回答(1 个)

Wayne King
Wayne King 2012-9-16
编辑:Wayne King 2012-9-16
[~,iv] = unique(v(:,1),'stable');
vnew = v(iv,:);

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by