Borrar filtros
Borrar filtros

How do I create a function that takes a vector of arbitrary length as an input argument and randomly permutes it as an output argument using the identity matrix, without using the randperm command?

4 visualizaciones (últimos 30 días)
function [ x ] = myPerm(A)
A = ()
myLength = length(A)
I = eye(length(A))
end
this is what I have, I need help creating the arbitrary length and permuting the matrix
  4 comentarios
Walter Roberson
Walter Roberson el 11 de Dic. de 2018
you have not put in any version information and full code generation is currently supported for randperm .
If permutation of aa vector is needed then why bother with an identity matrix ?
Sorry but this is sounding like a homework assignment not a real task.

Iniciar sesión para comentar.

Respuestas (2)

Stephen23
Stephen23 el 11 de Dic. de 2018
Editada: Stephen23 el 11 de Dic. de 2018
For an array of any size:
>> M = reshape(1:12,3,4)
M =
1 4 7 10
2 5 8 11
3 6 9 12
>> [~,X] = sort(rand(1,numel(M)));
>> M(:) = M(X)
M =
8 9 2 7
5 4 11 1
3 6 12 10

Bruno Luong
Bruno Luong el 11 de Dic. de 2018
Fisher–Yates shuffle
for i = length(A):-1:2
j = ceil(i*rand);
A([i,j]) = A([j i]);
end

Categorías

Más información sobre Structures en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by