What does the 'i' mean in [y,i] = unique(A)?

If I got a m x 1 matrix and I perform this little piece of code in Matlab it returns two arrays 'y' and 'i', where 'y' holds the unique numbers en 'i' holds the row numbers of the unique numbers? I don't understand why this is. Can someone explain this to me?

 Accepted Answer

Star Strider
Star Strider on 28 Apr 2016
Edited: Star Strider on 28 Apr 2016
It’s the index into ‘A’, so that ‘y=A(i)’. It returns the index of the first instance of the unique values. If you want all of them (indirectly), you have to ask for the third argument as well.

4 Comments

What's the difference between the first instance and all of them? I was reading on the vector index page, but I couldn't find this explained. Thanx for your first answer though.
My pleasure.
There is no difference if all of the values are unique, and all are already in ascending sorted order.
I don’t know what you intend by ‘the vector index page’. I would refer you to the documentation on the unique function, specifically Unique Values and Their Indices for the details.
Aaaah great, thanx! I was looking at the wrong page:
My pleasure!
That isn’t the ‘wrong’ page, and is definitely worth reading (I wish more posters here read it), but not the one that would provide the information you need to understand the unique function.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!