constant randperm in each iteration

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 commentaires

Jan
Jan le 13 Fév 2019
I tried to use 'seed' but have error.
Then please post the code and the error message.
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.
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.

Connectez-vous pour commenter.

 Réponse acceptée

Steven Lord
Steven Lord le 13 Fév 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 commentaire

Jan
Jan le 14 Fév 2019
Modifié(e) : Jan le 14 Fév 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Tags

Question posée :

NA
le 13 Fév 2019

Commenté :

Jan
le 14 Fév 2019

Community Treasure Hunt

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

Start Hunting!

Translated by