MATLAB Answers

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

18 views (last 30 days)
SM
SM on 12 Feb 2020
Edited: Stephen on 13 Feb 2020
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
Stephen
Stephen 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)

Community Treasure Hunt

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

Start Hunting!

Translated by