constant randperm in each iteration

2 visualizaciones (últimos 30 días)
NA
NA el 13 de Feb. de 2019
Comentada: Jan el 14 de Feb. de 2019
all=[2;3;4;56;7;89;5;1;5;1;3;6;7;9];
changed=9;
p = randperm(size(all,1));
p(1:changed)=[];
t=all/2
t(p)=0;
I want to run this code 10 times and want to have a same t in each iteration.
I tried to use 'seed' but have error.
  3 comentarios
NA
NA el 14 de Feb. de 2019
all=[2;3;4;56;7;89;5;1;5;1;3;6;7;9];
changed=9;
p = randperm('seed',size(all,1));
p(1:changed)=[];
t=all/2
t(p)=0;
Error using randperm
Inputs must be nonnegative scalar integers.
Jan
Jan el 14 de Feb. de 2019
Please take the time to read the documentation if you have a problem with a command:
doc randperm
You cannot provide a 'seed' for this command. Trying this is pure guessing, and this must fail soon. Only the random number generator can be seeded.

Iniciar sesión para comentar.

Respuesta aceptada

Steven Lord
Steven Lord el 13 de Feb. de 2019
First, you should probably use a different variable name for your vector of data. all already has a meaning in MATLAB.
Second, define a fixed variable before whatever loop you're using to iterate then set t to that fixed variable at the start of each iteration.
fixedt = allVector/2;
for iterations = 1:10
t = fixedt;
% do stuff with t
end
  1 comentario
Jan
Jan el 14 de Feb. de 2019
Editada: Jan el 14 de Feb. de 2019
@Naime: Of course. If you want a variable to have the same value for all iterations, define it outside the loop and do not change it inside.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by