MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#" onclick="window._kiq.push(['set', { 'event': 'Turn off MT' }]);">ここ</a>」をクリックしてください。

Naime
0

constant randperm in each iteration

Naime
さんによって質問されました 2019 年 2 月 13 日
最新アクティビティ Jan
さんによって コメントされました 2019 年 2 月 14 日
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 件のコメント

Jan
2019 年 2 月 13 日
I tried to use 'seed' but have error.
Then please post the code and the error message.
Naime
2019 年 2 月 14 日
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
2019 年 2 月 14 日
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.

サインイン to comment.

タグ

1 件の回答

回答者: Steven Lord
2019 年 2 月 13 日
 採用された回答

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 件のコメント

Jan
2019 年 2 月 14 日
@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.

サインイン to comment.



Translated by