- Индексирование Matlab начинается с
1
, ceil()
преобразуется 0.8 to 1
- Индекс Matlab может принимать только целые значения
ceil()
всегда возвращает целое число
>> x = rand(3,1)*5
x =
4.3117
4.4820
0.9451
>> ceil(x)
ans =
5
5
1
ceil(rand(m,n)*imax) and randi([1, imax], [m, n]) are equivalent.
Чтобы подтвердить предпочтение использования ceil()
, нужно взглянуть на документацию по этим методам, набрав open ceil
в командной строке, например
Copyright 1984-2017 The MathWorks, Inc.
Copyright 1984-2005 The MathWorks, Inc.
Copyright 2008-2013 The MathWorks, Inc.
В более ранней версии Matlab 1984~2008a
, randi()
не было доступно.
Единственной альтернативой было использование rand() and ceil() or rand() and floor()
для генерации равномерно распределенных случайных целых чисел.
Короче говоря, используя ceil() and rand()
, вы можете генерировать случайные числа на всех версиях Matlab , тогда как randi()
работает только на версиях более поздних, чем версия 2008b.