Sorting a matrix in percentiles

1 view (last 30 days)
Andreas S
Andreas S on 13 Oct 2020
Commented: Andreas S on 14 Oct 2020
Good afternoon! I need your help as im new in matlab about solving my following issue:
I have a matrix ret [420x500]
I want to separate this matrix in 10 matrices of [420x50] each. Is there any code than can generate 10 different matrices of same size from the matrix ret[420x500]?
I need 10 equally sized matrices (the breakpoints should be the 10th, 20th, 30th,... , 90th percentiles). I.e., 10 matrices from a given matrix ret.
Thank you in advance!!!

Accepted Answer

Ameer Hamza
Ameer Hamza on 13 Oct 2020
Use mat2cell()
M; % 420x500 matrix
M_parts = mat2cell(M, 420, 50*ones(1,10));
M_parts is a cell array. You can access it like this
M_parts{1}; % 1st 420x50 matrix
M_parts{2}; % 2nd 420x50 matrix
..
..
M_parts{10}; % 10th 420x50 matrix
  7 Comments
Ameer Hamza
Ameer Hamza on 14 Oct 2020
Following sort column of ret from smalles to largest
[~, idx] = sort(mean(ret));
ret_sorted = ret(:, idx);
Andreas S
Andreas S on 14 Oct 2020
Thank you very much for all of your help. I appreciate it a lot!!

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!