rand

Равномерно распределенные случайные числа

Синтаксис

X = rand
X = rand(n)
X = rand(sz1,...,szN)
X = rand(sz)
X = rand(___,typename)
X = rand(___,'like',p)

Описание

пример

X = rand возвращает одно равномерно распределенное случайное число в интервале (0,1).

пример

X = rand(n) возвращает n-by-n матрица случайных чисел.

пример

X = rand(sz1,...,szN) возвращает sz1...-by-szN массивом случайных чисел, где sz1,...,szN указывает на размер каждой размерности. Например, rand(3,4) вернёт матрицу размером 3 на 4.

пример

X = rand(sz) возвращает массив случайных чисел, причем вектор sz задает size(X). Например, rand(3,4) вернёт матрицу размером 3 на 4.

пример

X = rand(___,typename) возвращает массив случайных чисел типа данных typename. Typename может быть либо 'single', либо 'double'. Можно комбинировать с любым синтаксом из перечисленных выше.

пример

X = rand(___,'like',p) возвращает массив случайных чисел, подобных p; подобных - то есть того же типа. Можно задавать typename или использовать 'like', но не то и другое одновременно.

Примечание

'seed', 'state' и 'twister' в качестве входных параметров не рекомендованы. Вместо этого используйте функцию rng. Для получения дополнительной информации смотрите Замену Нежелательные Синтаксисы rand и randn.

Примеры

свернуть все

Сгенерируйте матрицу 5 на 5 равномерно распределенных случайных чисел между 0 и 1.

r = rand(5)
r = 5×5

    0.8147    0.0975    0.1576    0.1419    0.6557
    0.9058    0.2785    0.9706    0.4218    0.0357
    0.1270    0.5469    0.9572    0.9157    0.8491
    0.9134    0.9575    0.4854    0.7922    0.9340
    0.6324    0.9649    0.8003    0.9595    0.6787

Сгенерируйте вектор-столбец 10 на 1 равномерно распределенных чисел в интервале (-5,5).

r = -5 + (5+5)*rand(10,1)
r = 10×1

    3.1472
    4.0579
   -3.7301
    4.1338
    1.3236
   -4.0246
   -2.2150
    0.4688
    4.5751
    4.6489

В целом можно сгенерировать случайные числа N в интервале (a, b) с формулой r = a + (b-a).*rand(N,1).

Используйте функцию randi (вместо rand), чтобы сгенерировать 5 равномерно распределенных случайных чисел между 10 и 50.

r = randi([10 50],1,5)
r = 1×5

    43    47    15    47    35

Сгенерируйте одно случайное комплексное число с действительными и мнимыми частями в интервале (0,1).

a = rand + 1i*rand
a = 0.8147 + 0.9058i

Сохраните текущее состояние генератора случайных чисел и создайте вектор 1 на 5 случайных чисел.

s = rng;
r = rand(1,5)
r = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

Восстановите состояние генератора случайных чисел к s, и затем создайте новый вектор 1 на 5 случайных чисел. Значения те же, что и прежде.

rng(s);
r1 = rand(1,5)
r1 = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

Всегда используйте функцию rng (а не rand или функции randn), чтобы задать настройки генератора случайных чисел. Для получения дополнительной информации смотрите Замену Нежелательные Синтаксисы rand и randn.

Создание массива 3 на 2 на 3 случайных чисел.

X = rand([3,2,3])
X = 
X(:,:,1) =

    0.8147    0.9134
    0.9058    0.6324
    0.1270    0.0975


X(:,:,2) =

    0.2785    0.9649
    0.5469    0.1576
    0.9575    0.9706


X(:,:,3) =

    0.9572    0.1419
    0.4854    0.4218
    0.8003    0.9157

Создайте вектор 1 на 4 случайных чисел, элементы которых являются одинарной точностью.

r = rand(1,4,'single')
r = 1x4 single row vector

    0.8147    0.9058    0.1270    0.9134

class(r)
ans = 
'single'

Создайте матрицу случайных чисел с тем же размером как существующий массив.

A = [3 2; -2 1];
sz = size(A);
X = rand(sz)
X = 2×2

    0.8147    0.1270
    0.9058    0.9134

Это - общий шаблон, чтобы объединить предыдущие две строки кода в одну строку:

X = rand(size(A));

Создайте матрицу 2 на 2 случайных чисел одинарной точности.

p = single([3 2; -2 1]);

Создайте массив случайных чисел, который одного размера и тип данных как p.

X = rand(size(p),'like',p)
X = 2x2 single matrix

    0.8147    0.1270
    0.9058    0.9134

class(X)
ans = 
'single'

Если вы имеете Parallel Computing Toolbox™, создаете распределенный массив 1000 на 1000 случайных чисел с базовым типом данных single. Для типа данных distributed синтаксис 'like' клонирует базовый тип данных в дополнение к основному типу данных.

p = rand(1000,'single','distributed');
Starting parallel pool (parpool) using the 'local' profile ...
connected to 6 workers.

Создайте массив случайных чисел, который одного размера, основной тип данных и базовый тип данных как p.

X = rand(size(p),'like',p);
class(X)
ans =

distributed
classUnderlying(X)
ans =
single

Входные параметры

свернуть все

Размер квадратной матрицы, заданной как целочисленное значение.

  • Если n является 0, то X является пустой матрицей.

  • Если n отрицательно, это эквивалентно n = 0.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размер каждой размерности, заданной в качестве отдельных аргументов целочисленных значений.

  • Если размером какой-либо размерности является 0, то X является пустым массивом.

  • Если размер какой-либо размерности отрицателен, то это обработано как 0.

  • После второго измерения rand игнорирует последующие измерения с размером 1. Например, rand(3,1,1,1) производит вектор 3 на 1 случайных чисел.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размер каждой размерности, заданной как вектор - строка из целочисленных значений. Каждый элемент этого вектора указывает на размер соответствующей размерности:

  • Если размером какой-либо размерности является 0, то X является пустым массивом.

  • Если размер какой-либо размерности отрицателен, то это обработано как 0.

  • После второго измерения rand игнорирует последующие измерения с размером 1. Например, rand([3,1,1,1]) производит вектор 3 на 1 случайных чисел.

Пример: sz = [2,3,4] создает 2 массивом 3 на 4.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Тип (класс) создаваемых данных, заданный как 'double', 'single' или имя другого класса, который оказывает поддержку rand.

Пример: rand(5,'single')

Прототип создаваемого массива, заданный как числовой массив.

Пример: rand(5,'like',p)

Типы данных: single | double
Поддержка комплексного числа: Да

Советы

Расширенные возможности

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте