RandStream не определен в MATLAB 7.6.0.324? - PullRequest
2 голосов
/ 01 июня 2011

Я пытаюсь использовать RandStream в MATLAB 7.6.0.324, как показано ниже:

randst = RandStream('mrg32k3a', 'Seed', 0);

Очевидно, RandStream не определено в MATLAB 7.6.0.324, и я не могу найти документацию по этому поводу.

Как я могу установить случайное начальное число в этой версии Matlab, тогда для rand и randperm.

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Скорее всего, вы получили код от того, кто использует более новую версию MATLAB.Функция RandStream была введена в более поздних версиях MATLAB (я не помню, какая именно) и, как вы узнали, не существует в v7.6.0.324.В старых версиях вы просто устанавливали начальное число внутри rand следующим образом:

rand('seed',0);
x=rand(1,5)

x =

0.2190    0.0470    0.6789    0.6793    0.9347

randperm, с другой стороны, вызывает rand внутри него.Поэтому установка начального числа для rand перед вызовом randperm будет давать вам один и тот же вывод каждый раз.

rand('seed',0);
y=randperm(5)

y =

     2     1     3     4     5

ПРИМЕЧАНИЕ:

Этот синтаксис в настоящее время не рекомендуется (иподдержка может быть прекращена в будущих выпусках).Из документации :

Эти синтаксисы rand и randn более не рекомендуются по следующим причинам:

  • Термины «семя» и «состояние»'вводят в заблуждение названия для генераторов.
  • Все прежние генераторы, кроме' twister ', имеют недостатки.
  • Они излишне используют разные генераторы для rand и randn.
0 голосов
/ 01 июня 2011

вы, очевидно, используете старую версию, в которой функция еще не определена

попробуй qrandstream

...