Вектор случайных чисел матлаб

Генерация случайных чисел в Matlab

В Matlab для генерации случайных чисел предназначены специальные функции — rand, randn.

Функция rand генерирует массивы случайных чисел, значения элементов которых равномерно распределены на интервале (0; 1), т.е.

является аналогом функции табличного процессора СЛЧИС. Функция имеет следующие синтаксические конструкции:

  • — rand(n) — возвращает матрицу размера пхп. Если п — не скаляр, то появится сообщение об ошибке;
  • — rand(m, п) или rand([ra п]) — возвращают матрицу размера тхп;
  • — rand(m,n,p. ) или rand([m п р. ]) — возвращает многомерный массив;
  • — rand(size(A)) — возвращает массив того же размера и размерности, что и А, с элементами, распределенными по равномерному закону;
  • — rand (без аргументов) — возвращает одно случайное число, которое изменяется при каждом последующем вызове и имеет равномерный закон распределения;
  • — rand(‘ state’) — возвращает вектор с 35 элементами, содержащий текущее состояние генератора случайных чисел с равномерным распределением.

Для изменения состояния генератора можно применять следующие формы этой функции:

  • — rand(‘state’ .s) — устанавливает состояние в s;
  • — rand(‘state’ ,0) — сбрасывает генератор в начальное состояние;
  • — rand(‘state’. j) — для целых), устанавливает генератор в j-e состояние;
  • — rand(‘state’ ,sum(100*clock)) — каждый раз сбрасывает генератор в состояние, зависящее от времени.

Функция randn генерирует массив со случайными элементами, распределенными по стандартному нормальному закону, т.е. с нулевым математическим ожиданием и среднеквадратическим отклонением равным 1. Для генерации чисел, распределенных по нормальному закону, отличающегося от стандартного, нужно применить следующую формулу. Вектор случайных чисел матлаб

где d — величина стандартного отклонения;

т — математическое ожидание.

Функция randn имеет следующие синтаксические конструкции:

  • — randn(n) — возвращает матрицу размера пхп. Если п — не скаляр, то появится сообщение об ошибке;
  • — randn(m,n) или randn([m п]) — возвращают матрицу размера тхп;
  • — randn(m,n,p. ) или randn([m п р. ]) — возвращает массив с элементами, значения которых распределены по нормальному закону;
  • — randn(size(A)) — возвращает массив того же размера, что и А, с элементами, распределенными по нормальному закону;
  • — randn (без аргументов) — возвращает одно случайное число, которое изменяется при каждом последующем вызове и имеет нормальное распределение;
  • — randn(‘state’) — возвращает двухэлементный вектор, включающий текущее состояние нормального генератора.

Для изменения состояния генератора можно применять следующие формы этой конструкции:

  • — randn(‘state’,s) — устанавливает состояние в s;
  • — randn(‘state’ ,0) — сбрасывает генератор в начальное состояние;
  • — randn(‘state’, j) — для целых) устанавливает генератор в j-e состояние;
  • — randn(‘state’, sum( 100*clock)) — каждый раз сбрасывает генератор в состояние, зависящее от времени.

Кроме перечисленных функций в пакете расширения Statistics Toolbox есть множество статистических функций, в том числе для генерации случайных чисел с различными законами распределения и определения их статистических характеристик, такие как normrnd, binornd и др.

Функция normrnd предназначена для генерации чисел, распределенных по нормальному закону, который отличается от стандартного нормального распределения. Она имеет следующие синтаксические конструкции:

  • — normrnd(mu, sigma) — возвращает одно случайное число;
  • — normrnd(mu, sigma, М, N) — возвращает матрицу чисел размерностью М х N, где mu — математическое ожидание, sigma — стандартное отклонение.

Функция binornd предназначена для создания массива случайных чисел, распределенных по биноминальному закону. Функция имеет синтаксическую конструкцию:

Вектор случайных чисел матлаб

где N — количество испытаний;

Р — вероятность благоприятного исхода одного испытания;

ММ — количество строк матрицы R;

NN — количество столбцов матрицы R.

Пример 6.3. Требуется создать массив из шести чисел, распределенных по равномерному закону на интервале от 50 до 100.

Для решения задачи применим функцию rand, а для изменения диапазона используем формулу (Ь — а) + а:

» Y — rand(l,6)*( 100-50) + 50

Y — 65.2309 59.4827 59.6716 84.1112 65.1382 77.0837

Пример 6.4. Требуется создать массив из 15 чисел, имеющих стандартный нормальный закон распределения.

Для решения задачи применим функцию randn:

Y—0.4326 1.1909-0.1867 -1.66561.1892 0.7258 0.1253 -0.0376 -0.5883 0.2877 0.3273 2.1832 -1.1465 0.1746 -0.1364

Пример 6.5. Требуется создать массив случайных чисел, распределенных по биноминальному закону с параметрами: N— 10, Р=0,1 и построить гистограмму.

R — binornd(15,0.1,l,15); hist(R,15); disp(R)

Вектор случайных чисел матлаб

Пример 6.6. Требуется создать массив из 10 000 случайных чисел, распределенных нормально с математическим ожиданием т = 50 и стандартным отклонением sigma = 4, а также построить гистограмму плотности распределения с количеством столбцов и = 100.

Для решения задачи применим функции randn и normrnd, генерирующие случайные числа и функцию hist, выполняющую построение гистограммы:

Содержание
  1. Вектор случайных чисел матлаб
  2. Syntax
  3. Description
  4. Examples
  5. Matrix of Random Numbers
  6. Random Numbers Within Specified Interval
  7. Random Integers
  8. Random Complex Numbers
  9. Reset Random Number Generator
  10. 3-D Array of Random Numbers
  11. Specify Data Type of Random Numbers
  12. Clone Size from Existing Array
  13. Clone Size and Data Type from Existing Array
  14. Clone Distributed Array
  15. Input Arguments
  16. n — Size of square matrix integer value
  17. sz1. szN — Size of each dimension (as separate arguments) integer values
  18. sz — Size of each dimension (as a row vector) integer values
  19. typename — Data type (class) to create ‘double’ (default) | ‘single’
  20. p — Prototype of array to create numeric array
  21. s — Random number stream RandStream object
  22. Extended Capabilities
  23. C/C++ Code Generation Generate C and C++ code using MATLAB® Coder™.
  24. Thread-Based Environment Run code in the background using MATLAB® backgroundPool or accelerate code with Parallel Computing Toolbox™ ThreadPool .
  25. GPU Arrays Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
  26. Distributed Arrays Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
  27. See Also
  28. Topics
  29. Open Example
  30. MATLAB создает случайную матрицу
  31. Сгенерируйте случайные числа, используя функцию rand() в MATLAB
  32. Сгенерируйте случайные числа, используя функцию randi() в MATLAB
  33. Сгенерируйте случайные числа, используя функцию randn() в MATLAB
  34. Сгенерируйте случайные числа, используя функцию randperm() в MATLAB
  35. Сгенерируйте случайные числа с помощью функции betarnd() в MATLAB
  36. Сгенерируйте случайные числа, используя функцию random() в MATLAB
  37. 🎬 Видео

Видео:Работа с массивами. Вектор столбцы и вектор строки 1. Урок 7Скачать

Работа с массивами. Вектор столбцы и вектор строки 1. Урок 7

Вектор случайных чисел матлаб

Uniformly distributed random numbers

Видео:MATLAB 04 Массивы и матрицыСкачать

MATLAB 04 Массивы и матрицы

Syntax

Видео:rand. srand. rand задать диапазон. srand time null. Генератора случайных чисел. randomize. Урок #29.Скачать

rand. srand. rand задать диапазон. srand time null. Генератора случайных чисел. randomize. Урок #29.

Description

X = rand returns a single uniformly distributed random number in the interval (0,1).

X = rand( n ) returns an n -by- n matrix of random numbers.

X = rand( sz1. szN ) returns an sz1 -by-. -by- szN array of random numbers where sz1. szN indicate the size of each dimension. For example, rand(3,4) returns a 3-by-4 matrix.

X = rand( sz ) returns an array of random numbers where size vector sz specifies size(X) . For example, rand([3 4]) returns a 3-by-4 matrix.

X = rand( ___ , typename ) returns an array of random numbers of data type typename . The typename input can be either ‘single’ or ‘double’ . You can use any of the input arguments in the previous syntaxes.

X = rand( ___ ,’like’, p ) returns an array of random numbers like p ; that is, of the same object type as p . You can specify either typename or ‘like’ , but not both.

X = rand( s , ___ ) generates numbers from random number stream s instead of the default global stream. To create a stream, use RandStream . Specify s followed by any of the argument combinations in previous syntaxes, except for the ones that involve ‘like’ . This syntax does not support the ‘like’ input.

Note

The ‘seed’ , ‘state’ , and ‘twister’ inputs to the rand function are not recommended. Use the rng function instead. For more information, see Replace Discouraged Syntaxes of rand and randn.

Видео:Нахождение функции случайного вектораСкачать

Нахождение функции случайного вектора

Examples

Matrix of Random Numbers

Generate a 5-by-5 matrix of uniformly distributed random numbers between 0 and 1.

Random Numbers Within Specified Interval

Generate a 10-by-1 column vector of uniformly distributed numbers in the interval (-5,5).

In general, you can generate N random numbers in the interval (a,b) with the formula r = a + (b-a).*rand(N,1) .

Random Integers

Use the randi function (instead of rand ) to generate 5 random integers from the uniform distribution between 10 and 50.

Random Complex Numbers

Generate a single random complex number with real and imaginary parts in the interval (0,1).

Reset Random Number Generator

Save the current state of the random number generator and create a 1-by-5 vector of random numbers.

Restore the state of the random number generator to s , and then create a new 1-by-5 vector of random numbers. The values are the same as before.

Always use the rng function (rather than the rand or randn functions) to specify the settings of the random number generator. For more information, see Replace Discouraged Syntaxes of rand and randn.

3-D Array of Random Numbers

Create a 3-by-2-by-3 array of random numbers.

Specify Data Type of Random Numbers

Create a 1-by-4 vector of random numbers whose elements are single precision.

Clone Size from Existing Array

Create a matrix of random numbers with the same size as an existing array.

It is a common pattern to combine the previous two lines of code into a single line:

Clone Size and Data Type from Existing Array

Create a 2-by-2 matrix of single precision random numbers.

Create an array of random numbers that is the same size and data type as p .

Clone Distributed Array

If you have Parallel Computing Toolbox™, create a 1000-by-1000 distributed array of random numbers with underlying data type single . For the distributed data type, the ‘like’ syntax clones the underlying data type in addition to the primary data type.

Create an array of random numbers that is the same size, primary data type, and underlying data type as p .

Видео:Урок 6. Структуры MATLABСкачать

Урок 6. Структуры MATLAB

Input Arguments

n — Size of square matrix
integer value

Size of square matrix, specified as an integer value.

If n is 0 , then X is an empty matrix.

If n is negative, then it is treated as 0 .

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

sz1. szN — Size of each dimension (as separate arguments)
integer values

Size of each dimension, specified as separate arguments of integer values.

If the size of any dimension is 0 , then X is an empty array.

If the size of any dimension is negative, then it is treated as 0 .

Beyond the second dimension, rand ignores trailing dimensions with a size of 1. For example, rand(3,1,1,1) produces a 3-by-1 vector of random numbers.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

sz — Size of each dimension (as a row vector)
integer values

Size of each dimension, specified as a row vector of integer values. Each element of this vector indicates the size of the corresponding dimension:

If the size of any dimension is 0 , then X is an empty array.

If the size of any dimension is negative, then it is treated as 0 .

Beyond the second dimension, rand ignores trailing dimensions with a size of 1. For example, rand([3 1 1 1]) produces a 3-by-1 vector of random numbers.

Example: sz = [2 3 4] creates a 2-by-3-by-4 array.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

typename — Data type (class) to create
‘double’ (default) | ‘single’

Data type (class) to create, specified as ‘double’ , ‘single’ , or the name of another class that provides rand support.

Example: rand(5,’single’)

p — Prototype of array to create
numeric array

Prototype of array to create, specified as a numeric array.

Example: rand(5,’like’,p)

Data Types: single | double
Complex Number Support: Yes

s — Random number stream
RandStream object

Random number stream, specified as a RandStream object.

Example: s = RandStream(‘dsfmt19937’); rand(s,[3 1])

The sequence of numbers produced by rand is determined by the internal settings of the uniform pseudorandom number generator that underlies rand , randi , and randn . You can control that shared random number generator using rng .

Видео:Generate a random number in MATLABСкачать

Generate a random number in MATLAB

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Usage notes and limitations:

The data type (class) must be a built-in MATLAB ® numeric type. For other classes, the static rand method is not invoked. For example, rand(sz,’myclass’) does not invoke myclass.rand(sz) .

Size arguments must have a fixed size.

If extrinsic calls are enabled and rand is not called from inside a parfor loop, generated MEX files use the same random number state as MATLAB in serial code. Otherwise, the generated MEX code and standalone code maintain their own random number state that is initialized to the same state as MATLAB.

Thread-Based Environment
Run code in the background using MATLAB® backgroundPool or accelerate code with Parallel Computing Toolbox™ ThreadPool .

This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.

GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.

Usage notes and limitations:

The stream syntax rand( s ,___) is not supported on a GPU.

You can specify typename as ‘gpuArray’ . If you specify typename as ‘gpuArray’ , the default underlying type of the array is double .

To create a GPU array with underlying type datatype , specify the underlying type as an additional argument before typename . For example, X = rand(3,datatype,’gpuArray’) creates a 3-by-3 GPU array of random numbers with underlying type datatype .

You can specify the underlying type datatype as one of these options:

You can also specify the numeric variable p as a gpuArray .

If you specify p as a gpuArray , the underlying type of the returned array is the same as p .

For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox) .

Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.

Usage notes and limitations:

The stream syntax rand( s ,___) is not supported for codistributed or distributed arrays.

You can specify typename as ‘codistributed’ or ‘distributed’ . If you specify typename as ‘codistributed’ or ‘distributed’ , the default underlying type of the returned array is double .

To create a distributed or codistributed array with underlying type datatype , specify the underlying type as an additional argument before typename . For example, X = rand(3,datatype,’distributed’) creates a 3-by-3 distributed matrix of random numbers with underlying type datatype .

You can specify the underlying type datatype as one of these options:

You can also specify p as a codistributed or distributed array.

If you specify p as a codistributed or distributed array, the underlying type of the returned array is the same as p .

For additional codistributed syntaxes, see rand (codistributed) (Parallel Computing Toolbox) .

For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox) .

Видео:2 - Решениt систем линейных алгебраических уравнений (СЛАУ) с помощью Matlab.Скачать

2 - Решениt систем линейных алгебраических уравнений (СЛАУ) с помощью Matlab.

See Also

Topics

Видео:2-4 MATLAB - Матрицы и индексацияСкачать

2-4 MATLAB - Матрицы и индексация

Open Example

You have a modified version of this example. Do you want to open this example with your edits?

Видео:Matlab. Лекция 10. Комплексные числа.Скачать

Matlab. Лекция 10. Комплексные числа.

MATLAB создает случайную матрицу

В этом руководстве будет обсуждаться, как сгенерировать или создать случайные числа с помощью функций rand() , randi() , randn() , randperm() , betarand() и random() . в MATLAB.

Видео:Случайный вектор двумерной случайной величиныСкачать

Случайный вектор двумерной случайной величины

Сгенерируйте случайные числа, используя функцию rand() в MATLAB

Если вы хотите сгенерировать равномерно распределенные случайные числа, вы можете использовать функцию rand() в MATLAB, которая генерирует случайные числа от 0 до 1. Вы также можете указать размер матрицы, содержащей случайные значения, и каждое значение будет от 0 до 1, которые вы можете масштабировать в соответствии с вашими требованиями, умножая их с помощью масштабатора. Например, сгенерируем матрицу случайных значений 2 на 2 с помощью функции rand() . См. Код ниже.

Как видно из выходных данных, создается матрица 2 на 2, содержащая случайные значения от 0 до 1. Если вы хотите указать диапазон случайных чисел, вы должны использовать приведенную ниже формулу.

В этой формуле a — это нижний предел, b — верхний предел, а n — длина случайных чисел. Например, давайте сгенерируем десять случайных чисел в диапазоне от 2 до 8. См. Код ниже.

Есть десять случайных чисел в диапазоне от 2 до 8. Если вам нужны только целые числа на выходе, вы можете преобразовать эти случайные числа в целые, используя функцию round() , которая округляет число с плавающей запятой до ближайшего целого. . Вы также можете клонировать размер и тип данных случайных чисел из существующего массива, используя функцию size() для размера и свойство like для типа данных. Например, давайте создадим массив и сгенерируем случайные значения в соответствии с размером и типом данных этого массива. См. Код ниже.

Размер и тип данных массива и случайных чисел совпадают. Проверьте эту ссылку, чтобы узнать больше о функции rand() .

Видео:Инструменты LDRA для верификации ПО: Создание тестовых векторов в MATLABСкачать

Инструменты LDRA для верификации ПО: Создание тестовых векторов в MATLAB

Сгенерируйте случайные числа, используя функцию randi() в MATLAB

Вышеупомянутая функция генерирует случайные числа с плавающей запятой, но если вы хотите сгенерировать случайные целые числа, вы можете использовать функцию randi() в MATLAB, которая генерирует случайные целые числа от 1 до заданного целого числа, которое вы можете указать как первый аргумент в функции randi() . Вы также можете указать размер выходной матрицы, содержащей случайные значения, в качестве второго и третьего аргумента. Например, давайте сгенерируем матрицу 3 на 3, содержащую случайные целые числа от 1 до 15. См. Код ниже.

Матрица имеет размер 3 на 3 и содержит случайные целые числа от 1 до 15. Вы также можете генерировать случайные целые числа между определенным диапазоном, и вам просто нужно передать диапазон в квадратных скобках в качестве первого аргумента randi() функция. Например, давайте сгенерируем 10 случайных чисел от -10 до 10. См. Код ниже.

Существует десять случайных чисел в диапазоне от -10 до 10. Вы также можете определить тип данных целых чисел, передав имя типа данных в функции randi() . Вы можете выбрать следующие типы данных: ‘single’ , ‘double’ , ‘int8’ , ‘uint8’ , ‘int16’ , ‘uint16’ , ‘int32’ . , или ‘uint32’ . Вы можете определить размер случайных чисел из размера существующего массива с помощью функции size() и числового типа данных с помощью свойства like . Например, давайте сгенерируем матрицу случайных значений в зависимости от размера и числового типа данных существующего массива. См. Код ниже.

Размер и тип данных массива и случайных чисел совпадают. Проверьте эту ссылку, чтобы узнать больше о функции randi() .

Видео:MATLAB 07 Интерактивное построение графиковСкачать

MATLAB 07 Интерактивное построение графиков

Сгенерируйте случайные числа, используя функцию randn() в MATLAB

Если вы хотите сгенерировать нормально распределенные случайные числа, вы можете использовать функцию randn() в MATLAB. Функция randn() аналогична функции rand() , но отличается только типом распределения. Функция rand() генерирует равномерно распределенные случайные числа, а функция randn() генерирует нормально распределенные случайные числа. Вы можете использовать любую из этих функций в зависимости от ваших требований. Проверьте эту ссылку, чтобы узнать больше о функции randn .

Видео:Массивы в языке MATLAB (GNU Octave)Скачать

Массивы в языке MATLAB (GNU Octave)

Сгенерируйте случайные числа, используя функцию randperm() в MATLAB

Если вы хотите сгенерировать случайную перестановку целых чисел, вы можете использовать функцию randperm() в MATLAB. Случайная перестановка целых чисел будет от 1 до определенного числа, которое вы можете определить в функции randperm() в качестве первого аргумента. Вы также можете определить количество целых чисел, которые хотите сгенерировать, в качестве второго аргумента функции. Например, давайте сгенерируем случайную перестановку 6 уникальных целых чисел. См. Код ниже.

Все целые числа уникальны и находятся в диапазоне от 1 до 10. Обратите внимание, что функция randperm() аналогична функции randi() с той разницей, что randperm() генерирует уникальные целые числа, тогда как в randperm() randi() целые числа могут повторяться. Проверьте эту ссылку, чтобы узнать больше о функции randperm .

Видео:MatLab. Матрицы. Практика 2 часть 1Скачать

MatLab. Матрицы. Практика 2 часть 1

Сгенерируйте случайные числа с помощью функции betarnd() в MATLAB

Если вы хотите сгенерировать случайные числа из бета-распределения, вы можете использовать функцию betarnd() в MATLAB. Эта функция генерирует случайные целые числа, заданные первым и вторым аргументом: векторы, матрицы или массивы одинакового размера. Например, давайте сгенерируем матрицу случайных чисел размером 1 на 5 из бета-распределения, используя в качестве входных данных два вектора. См. Код ниже.

Вы также можете указать размер выходной матрицы, задав его в третьем и четвертом аргументах функции betarnd() . Посетите эту ссылку, чтобы узнать больше о функции betarnd() .

Видео:Решение задачи расписания в MATLABСкачать

Решение задачи расписания в MATLAB

Сгенерируйте случайные числа, используя функцию random() в MATLAB

Если вы хотите сгенерировать случайные числа из указанного типа распределения, вы можете использовать функцию random() в MATLAB. Вы должны определить имя распределения в качестве первого аргумента, а затем после этого вам необходимо передать параметры распределения. Например, давайте сгенерируем нормально распределенные случайные числа, используя значение сигмы 0 и значение mu 1, используя функцию random() . См. Код ниже.

Вы можете определить необходимое имя дистрибутива в функции. Вы можете использовать множество типов распределений, например: Бета , Биномиальное , Экспоненциальное , Гамма и многие другие. Посетите эту ссылку, чтобы узнать больше о функции random .

🎬 Видео

MatLab Одномерные массивыСкачать

MatLab Одномерные массивы

Гистограмма распределения в МатлабСкачать

Гистограмма распределения в Матлаб

Индексация массивов в языке MATLAB (GNU Octave). ВекторыСкачать

Индексация массивов в языке MATLAB (GNU Octave). Векторы

MatLab. Урок 3. Функции и построение графиков.Скачать

MatLab. Урок 3. Функции и построение графиков.

Тест генератора случайных чисел классический алгоритмСкачать

Тест генератора случайных чисел классический алгоритм
Поделиться или сохранить к себе: