I like to arrange the pixels intensity based on the sequence in the matrix

Good evening.
I'd like to arrange the pixels intensity based on the sequence in the matrix EX:
Y = [ 5 4 4 2 ;
6 3 3 1 ;
2 4 2 2;
5 5 6 1]
The answer is supposed to be like :
YY = [5 5 5 4 ;
4 4 2 2 ;
2 2 6 6 ;
3 3 1 1]
Thanks

2 Comments

What is the rule about the order to be used?
Looks like something that might involve histcounts() and repelem()? But I can't make out the rule either. If it was most frequen first, then it should start out with 2, not 5 since there are four 2's but only three 5's.

Sign in to comment.

 Accepted Answer

This is probably the logic:
Y = [ 5 4 4 2 ;
6 3 3 1 ;
2 4 2 2;
5 5 6 1]
[values, ~, loc] = unique(Y.', 'stable');
YY = reshape(values(sort(loc)), fliplr(size(Y))).'

More Answers (0)

Asked:

on 22 Mar 2017

Commented:

on 6 Apr 2017

Community Treasure Hunt

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

Start Hunting!