exstract consecutive duplicate element of array

Dear Dear I've got the folowing problem Given an A matrix nxm i need to exstract consecutive duplicate elements of array
so I mean if for excample the row n=n+1 =n+2 I want to get a matrix B obtainet from A less the rows duplicate

4 件のコメント

madhan ravi
madhan ravi 2018 年 10 月 25 日
Example of your output?
ADC
ADC 2018 年 10 月 25 日
編集済み: Guillaume 2018 年 10 月 25 日
For exsamples the second coloumn the secon line have the value 2 duplicate
so the functions i need is to get te matrix B as following
A =
1 2 3
1 2 7
3 4 9
K>> B=[1 2 3;3 4 9]
B =
1 2 3
3 4 9
jonas
jonas 2018 年 10 月 25 日
編集済み: jonas 2018 年 10 月 25 日
I think you missed some ;'s there? Should it be
A = [1 2 3; 1 2 7; 3 4 9]
and the output
B = [1 2 3; 3 4 9]
?? I'm just guessing here
ADC
ADC 2018 年 10 月 25 日
yess

サインインしてコメントする。

回答 (2 件)

Stephen23
Stephen23 2018 年 10 月 25 日

1 投票

>> A = [1,2,3;1,2,7;3,4,9;9,9,9;7,7,7]
A =
1 2 3
1 2 7
3 4 9
9 9 9
7 7 7
>> B = A([true;all(diff(A,1,1)~=0,2)],:)
B =
1 2 3
3 4 9
7 7 7
jonas
jonas 2018 年 10 月 25 日
編集済み: jonas 2018 年 10 月 25 日

0 投票

A is your matrix. This line removes duplicates:
A([false diff(A)==0]) = [];
Or you could expand it to this, given your vague example from the comments
A =
1 2 3
1 2 7
3 4 9
_
mask = [ones(1,size(A,1));diff(A,1)] == 0;
A = A(sum(mask,2)==0,:)
A =
1 2 3
3 4 9

2 件のコメント

ADC
ADC 2018 年 10 月 25 日
this is exsactly what I need but I whant that this check is done only for example a given coulumn, for example the coloumn 3
jonas
jonas 2018 年 10 月 25 日
編集済み: jonas 2018 年 10 月 25 日
Simple enough, just change this line
mask = [false;diff(A(:,3))==0]
or simply write it like this
mask = [false;diff(A(:,3))==0]
A = A(~mask,:)
The number, in this case 3, determines the column over which the check is made

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

質問済み:

ADC
2018 年 10 月 25 日

編集済み:

2018 年 10 月 25 日

Community Treasure Hunt

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

Start Hunting!

Translated by