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

3 Ansichten (letzte 30 Tage)
SM
SM am 12 Feb. 2020
Bearbeitet: Stephen23 am 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!

Akzeptierte Antwort

John D'Errico
John D'Errico am 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 Kommentar
Stephen23
Stephen23 am 13 Feb. 2020
Bearbeitet: Stephen23 am 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Random Number Generation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by