Problem 42504. Data Regularization

Provided is an m-by-n integer data matrix A whose elements are drawn arbitrarily from a set S = [1,2,3,...,S] for any large integer number S > 1. The "arbitrary" manner of drawing integer numbers implies that each column of A might contain only a subset of integer numbers from S. Our objective is to regularize the data in A subject to the following rules:

For each column in A,

  • The smallest number or numbers (if there are more than one such number) are mapped to 1;
  • The 2nd-smallest number or numbers (if there are more than one such number) are mapped to 2;
  • The k th-smallest number or numbers (if there are more than one such number) are mapped to k .

For example, S = [1:8] with S = 8. Suppose the input data matrix A is

A = [2  6
     5  3
     5  6
     3  7]

Then the output matrix B is

B = [1  2 
     3  1
     3  2
     2  3]

Please try to avoid for or while loops. Vectorized code will be more appreciated.

Solution Stats

38.58% Correct | 61.42% Incorrect
Last Solution submitted on Mar 01, 2023

Problem Comments

Solution Comments

Show comments

Problem Recent Solvers37

Suggested Problems

More from this Author29

Community Treasure Hunt

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

Start Hunting!