How can I remove a duplicate set values?

I have an array of
d = [100 50 100 100 50 100 100 50 100 100 50 100 100 50 100 100 50 100];
the result that I want is
d = [100 50 100]
I already tried using unique(d) but the result shows [50 100] How can I remove the duplicate values?
Thanks

3 个评论

Jan
Jan 2018-5-20
编辑:Jan 2018-5-20
Please take the time to explain, which operation you want. Why is the output [100, 50, 100]? It could be [100,50,100,100,50,100] also. How do the inputs look like in general?
I am sorry, d= [100 50 100 100 50 100 100 50 100 100 50 100 100 50 100 100 50 100];is an input from data reading (I already done that). The data is from the simulator machine, I don't know why the data from the machine came out like that. But, the actual value of the data is [100 50 100]. So, that's why I only need one set of [100 50 100]. I already tried with unique (d) but it does not worked.
Do you know the length of the sequence or does the determination of the period belongs to the problem?

回答(3 个)

For a general case, where you don't already know the number of elements being repeated use the following
d(1:seqperiod(d))
ans =
100 50 100
Note: This will require Signal Processing Toolbox.
I guess
  • d is a row vector of whole numbers
  • d consists of multiple sets of three numbers
  • you search unique sets of three numbers
d = [100 50 100 100 50 100 100 50 100 100 50 100 100 50 100 100 50 100];
m = reshape( d, 3,[] );
m = permute( m, [2,1] );
unique( m, 'rows' )
returns
ans =
100 50 100

此问题已关闭。

产品

提问:

2018-5-19

关闭:

2021-8-20

Community Treasure Hunt

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

Start Hunting!

Translated by