How can a matrix of randperm be generated with variable n*m?

6 views (last 30 days)
I want to generate a matrix of n*m size, which looks like
where
n=3
m=4
A=[randperm(m); randperm(m);randperm(m);]
These value may change with problem size. How can i generate this matrix since n and m vary? No loop please!

Accepted Answer

John D'Errico
John D'Errico on 12 Feb 2020
SImpler than you think.
M = 4;
N = 3;
[~,A] = sort(rand(M,N),1)
A =
1 1 3
4 2 1
2 3 4
3 4 2
  1 Comment
Stephen23
Stephen23 on 13 Feb 2020
Edited: Stephen23 on 13 Feb 2020
Sorting horizontally gives an equivalent matrix to that shown in the question:
>> M = 4;
>> N = 3;
>> [~,A] = sort(rand(N,M),2)
A =
4 2 3 1
2 1 4 3
4 1 3 2

Sign in to comment.

More Answers (0)

Categories

Find more on Random Number Generation 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!