randn

Нормально распределенные случайные числа

Синтаксис

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

Описание

пример

X = randn возвращает случайный скаляр, чертивший в стандартное нормальное распределение.

пример

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

пример

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

пример

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

пример

X = randn(___,typename) возвращает массив случайных чисел типа данных typename. The typename input can be either 'single' or 'double'. You can use any of the input arguments in the previous syntaxes.

пример

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

Примечание

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

Примеры

свернуть все

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

r = randn(5)
r = 5×5

    0.5377   -1.3077   -1.3499   -0.2050    0.6715
    1.8339   -0.4336    3.0349   -0.1241   -1.2075
   -2.2588    0.3426    0.7254    1.4897    0.7172
    0.8622    3.5784   -0.0631    1.4090    1.6302
    0.3188    2.7694    0.7147    1.4172    0.4889

Сгенерируйте значения от двумерного нормального распределения с заданным средним вектором и ковариационной матрицей.

mu = [1 2];
sigma = [1 0.5; 0.5 2];
R = chol(sigma);
z = repmat(mu,10,1) + randn(10,2)*R
z = 10×2

    1.5377    0.4831
    2.8339    6.9318
   -1.2588    1.8302
    1.8622    2.3477
    1.3188    3.1049
   -0.3077    1.0750
    0.5664    1.6190
    1.3426    4.1420
    4.5784    5.6532
    3.7694    5.2595

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

a = randn + 1i*randn
a = 0.5377 + 1.8339i

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

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

    0.5377    1.8339   -2.2588    0.8622    0.3188

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

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

    0.5377    1.8339   -2.2588    0.8622    0.3188

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

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

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

    0.5377    0.8622
    1.8339    0.3188
   -2.2588   -1.3077


X(:,:,2) =

   -0.4336    2.7694
    0.3426   -1.3499
    3.5784    3.0349


X(:,:,3) =

    0.7254   -0.2050
   -0.0631   -0.1241
    0.7147    1.4897

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

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

    0.5377    1.8339   -2.2588    0.8622

class(r)
ans = 
'single'

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

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

    0.5377   -2.2588
    1.8339    0.8622

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

X = randn(size(A));

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

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

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

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

    0.5377   -2.2588
    1.8339    0.8622

class(X)
ans = 
'single'

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

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

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

X = randn(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.

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

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

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

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

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

  • После второго измерения randn игнорирует последующие измерения с размером 1. Например, randn([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' или имя другого класса, который оказывает поддержку randn.

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

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

Пример: randn (5, 'как', p)

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

Советы

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

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

Была ли эта тема полезной?