Скорее всего, вы получили код от того, кто использует более новую версию 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.