Как задать случайный вектор в матлабе

Как задать случайный вектор в матлабе

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

Ниже показан пример задания вектора с именем a, и содержащий значения 1, 2, 3, 4:

a = [1 2 3 4]; % вектор-строка

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

disp( a(1) ); % отображение значения 1-го элемента вектора
disp( a(2) ); % отображение значения 2-го элемента вектора
disp( a(3) ); % отображение значения 3-го элемента вектора
disp( a(4) ); % отображение значения 4-го элемента вектора

т.е. нужно указать имя вектора и в круглых скобках написать номер индекса элемента, с которым предполагается работать. Например, для изменения значения 2-го элемента массива на 10 достаточно записать

a(2) = 10; % изменение значения 2-го элемента на 10

Часто возникает необходимость определения общего числа элементов в векторе, т.е. определения его размера. Это можно сделать, воспользовавшись функцией length() следующим образом:

N = length(a); % (N=4) число элементов массива а

Если требуется задать вектор-столбец, то это можно сделать так

a = [1; 2; 3; 4]; % вектор-столбец

b = [1 2 3 4]’; % вектор-столбец

при этом доступ к элементам векторов осуществляется также как и для векторов-строк.

Следует отметить, что векторы можно составлять не только из отдельных чисел или переменных, но и из векторов. Например, следующий фрагмент программы показывает, как можно создавать один вектор на основе другого:

a = [1 2 3 4]; % начальный вектор a = [1 2 3 4]
b = [a 5 6]; % второй вектор b = [1 2 3 4 5 6]

Здесь вектор b состоит из шести элементов и создан на основе вектора а. Используя этот прием, можно осуществлять увеличение размера векторов в процессе работы программы:

a = [a 5]; % увеличение вектора а на один элемент

Недостатком описанного способа задания (инициализации) векторов является сложность определения векторов больших размеров, состоящих, например, из 100 или 1000 элементов. Чтобы решить данную задачу, в MatLab существуют функции инициализации векторов нулями, единицами или случайными значениями:

a1 = zeros(1, 100); % вектор-строка, 100 элементов с
% нулевыми значениями
a2 = zeros(100, 1); % вектор-столбец, 100 элементов с
% нулевыми значениями
a3 = ones(1, 1000); % вектор-строка, 1000 элементов с
% единичными значениями
a4 = ones(1000, 1); % вектор-столбец, 1000 элементов с
% единичными значениями
a5 = rand(1000, 1); % вектор-столбец, 1000 элементов со
% случайными значениями

Матрицы в MatLab задаются аналогично векторам с той лишь разницей, что указываются обе размерности. Приведем пример инициализации единичной матрицы размером 3х3:

E = [1 0 0; 0 1 0; 0 01]; % единичная матрица 3х3

E = [1 0 0
0 1 0
0 0 1]; % единичная матрица 3х3

Аналогичным образом можно задавать любые другие матрицы, а также использовать приведенные выше функции zeros(), ones() и rand(), например:

A1 = zeros(10,10); % нулевая матрица 10х10 элементов

A2 = zeros(10); % нулевая матрица 10х10 элементов
A3 = ones(5); % матрица 5х5, состоящая из единиц
A4 = rand(100); % матрица 100х100, из случайных чисел

Для доступа к элементам матрицы применяется такой же синтаксис как и для векторов, но с указанием строки и столбца где находится требуемый элемент:

A = [1 2 3;4 5 6;7 8 9]; % матрица 3х3
disp( A(2,1) ); % вывод на экран элемента, стоящего во
% второй строке первого столбца, т.е. 4
disp( A(1,2) ); % вывод на экран элемента, стоящего в
% первой строке второго столбца, т.е. 2

Также возможны операции выделения указанной части матрицы, например:

B1 = A(:,1); % B1 = [1; 4; 7] – выделение первого столбца
B2 = A(2,:); % B2 = [1 2 3] – выделение первой строки
B3 = A(1:2,2:3); % B3 = [2 3; 5 6] – выделение первых двух
% строк и 2-го и 3-го столбцов матрицы А.

Размерность любой матрицы или вектора в MatLab можно определить с помощью функции size(), которая возвращает число строк и столбцов переменной, указанной в качестве аргумента:

a = 5; % переменная а
A = [1 2 3]; % вектор-строка
B = [1 2 3; 4 5 6]; % матрица 2х3
size(a) % 1х1
size(A) % 1х3
size(B) % 2х3

© 2022 Научная библиотека

Копирование информации со страницы разрешается только с указанием ссылки на данный сайт

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

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

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

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

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

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

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

Сгенерируйте случайные числа, используя функцию 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() .

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

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

Сгенерируйте случайные числа, используя функцию 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Скачать

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

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

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

Видео:Основы ЦОС: 12. Шум как случайный процесс (ссылка на скачивание скрипта в описании)Скачать

Основы ЦОС: 12. Шум как случайный процесс (ссылка на скачивание скрипта в описании)

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

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

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

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

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

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

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

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

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

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

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

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

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

Видео:Функция распределения и плотность распределенияСкачать

Функция распределения и плотность распределения

Как задать случайный вектор в матлабе

Uniformly distributed random numbers

Видео:Урок 10 Собственные векторы и собственные значения матрицыСкачать

Урок 10  Собственные векторы и собственные значения матрицы

Syntax

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

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

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.

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

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

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 .

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

Инструменты LDRA для верификации ПО: Создание тестовых векторов в 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 .

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

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

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) .

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

Моделирование непрерывных случайных величин

See Also

Topics

Видео:Сплайны и интерполяция данных в MATLABСкачать

Сплайны и интерполяция данных в MATLAB

Open Example

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

💡 Видео

MatLab. Урок 1. Основы программирования.Скачать

MatLab. Урок 1. Основы программирования.

Теория вероятностей #12: случайная величина, плотность и функция распределенияСкачать

Теория вероятностей #12: случайная величина, плотность и функция распределения

MATLAB 03 Написание программСкачать

MATLAB 03 Написание программ

ТАУ. Matlab/Simulink - моделирование передаточной функции, снятие характеристикСкачать

ТАУ. Matlab/Simulink - моделирование передаточной функции, снятие характеристик

Семинар по ЦОС: АвтокорреляцияСкачать

Семинар по ЦОС: Автокорреляция
Поделиться или сохранить к себе: