Выше были рассмотрены операции с простыми переменными. Однако с их помощью сложно описывать сложные данные, такие как случайный сигнал, поступающий на вход фильтра или хранить кадр изображения и т.п. Поэтому в языках высокого уровня предусмотрена возможность хранить значения в виде массивов. В 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 Научная библиотека
Копирование информации со страницы разрешается только с указанием ссылки на данный сайт
- Как увеличить и уменьшить в векторе в Matlab
- Как уменьшить размер вектора матлаб
- Examples
- Size of 4-D Array
- Size of Table
- Dimension Lengths as Separate Arguments
- Input Arguments
- A — Input array scalar | vector | matrix | multidimensional array
- dim — Queried dimensions positive integer scalar | vector of positive integer scalars
- dim1,dim2,…,dimN — List of queried dimensions positive integer scalars
- Output Arguments
- sz — Array size row vector of nonnegative integers
- 📺 Видео
Видео:Работа с массивами. Вектор столбцы и вектор строки 1. Урок 7Скачать
Как увеличить и уменьшить в векторе в Matlab
Существует ли более простой способ создания такого вектора b = [1,3,5,7,9,7,5,3,1]?
То, что я сделал, я в основном разделил вектор на увеличивающиеся и уменьшающиеся части и использовал horzcat следующим образом:
Однако это не очень эффективно. Существует ли более простой способ сделать это, не объявляя и не конкатенируя два вектора?
Это не ужасно неэффективно, нет. Однако вам не нужно называть horzcat по имени:
Но если вы хотите избежать второго набора операторов colon , вы можете перевернуть первую сторону:
Но у вас есть другая colon , и это определенно более эффективно сделать это первым способом.
Возможно, c = 9; s = 2; b = 1:s:c-2; a = [bc fliplr(b)]; c = 9; s = 2; b = 1:s:c-2; a = [bc fliplr(b)]; если c-1 делится на s , но я не вижу смысла усложнять простую операцию вроде этого. если это не так, как вы получаете свои удары. 😉
Видео:MatLab. 3. 2b. Сложение, вычитание и умножение векторовСкачать
Как уменьшить размер вектора матлаб
sz = size( A ) returns a row vector whose elements are the lengths of the corresponding dimensions of A . For example, if A is a 3-by-4 matrix, then size(A) returns the vector [3 4] .
If A is a table or timetable, then size(A) returns a two-element row vector consisting of the number of rows and the number of table variables.
szdim = size( A , dim ) returns the length of dimension dim when dim is a positive integer scalar. Starting in R2019b, you can also specify dim as a vector of positive integers to query multiple dimension lengths at a time. For example, size(A,[2 3]) returns the lengths of the second and third dimensions of A in the 1-by-2 row vector szdim .
szdim = size( A , dim1,dim2,…,dimN ) returns the lengths of dimensions dim1,dim2,…,dimN in the row vector szdim (starting in R2019b).
[ sz1. szN ] = size( ___ ) returns the lengths of the queried dimensions of A separately.
Видео:MatLab. 6.6d. Собственные числа и векторы матриц, функции матрицСкачать
Examples
Size of 4-D Array
Create a random 4-D array and return its size.
Query only the length of the second dimension of A .
Starting in R2019b, you can query multiple dimension lengths at a time by specifying a vector dimension argument. For example, find the lengths of the first and third dimensions of A .
Find the lengths of the second through fourth dimensions of A .
Alternatively, you can list the queried dimensions as separate input arguments.
Size of Table
Create a table with 5 rows and 4 variables.
Find the size of the table. Although the BloodPressure variable contains two columns, size only counts the number of variables.
Dimension Lengths as Separate Arguments
Create a random matrix and return the number of rows and columns separately.
Видео:Операции над векторами matlabСкачать
Input Arguments
A — Input array
scalar | vector | matrix | multidimensional array
Input array, specified as a scalar, a vector, a matrix, or a multidimensional array.
Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | function_handle | cell | categorical | datetime | duration | calendarDuration | table | timetable
Complex Number Support: Yes
dim — Queried dimensions
positive integer scalar | vector of positive integer scalars
Queried dimensions, specified as a positive integer scalar or vector of positive integer scalars. If an element of dim is larger than ndims(A) , then size returns 1 in the corresponding element of the output.
Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
dim1,dim2,…,dimN — List of queried dimensions
positive integer scalars
List of queried dimensions, specified as positive integer scalars separated by commas. If an element of the list is larger than ndims(A) , then size returns 1 in the corresponding element of the output.
Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Видео:2-4 MATLAB - Матрицы и индексацияСкачать
Output Arguments
sz — Array size
row vector of nonnegative integers
Array size, returned as a row vector of nonnegative integers.
Each element of sz represents the length of the corresponding dimension of A . If any element of sz is equal to 0 , then A is an empty array.
If A is a scalar, then sz is the row vector [1 1] .
If A is a table or timetable, then sz is a two-element row vector containing the number of rows and the number of variables. Multiple columns within a single variable are not counted.
If A is a character vector of type char , then size returns the row vector [1 M] where M is the number of characters. However, if A is a string scalar, size returns [1 1] because it is a single element of a string array. For example, compare the output of size for a character vector and string:
📺 Видео
Matlab создание вектора данныхСкачать
MATLAB 04 Массивы и матрицыСкачать
MatLab. 3.2. Двумерные массивы чисел: матрицы и векторыСкачать
Математика это не ИсламСкачать
MatLab. 3.3f. Создание матриц специального видаСкачать
2 - Решениt систем линейных алгебраических уравнений (СЛАУ) с помощью Matlab.Скачать
how to convert Matrix into a Vector using reshape command in MATLABСкачать
Transforming 1D vector into Array in MatLABСкачать
MATLAB: Size of an Array - lengthСкачать
ИЗМЕНИТЬ РАЗМЕР МАССИВА | увеличить массив C# | уменьшить массив | СИ ШАРП ДОМАШНИЕ ЗАДАНИЯ # 12Скачать
Практическая работа 6. Одномерная и многомерная оптимизация в MATLAB. Теория и порядок выполненияСкачать
Основы линейной алгебры. 2. Векторы. Часть 1Скачать
How can I reshape an array in MatlabСкачать
Конструкция SPMD в MATLAB -- работа с большими матрицамиСкачать
Самое страшное и мерзкое.Чего боятся россияне. Би-2 -подло и мелочно. Блокадный опыт пригодится.Скачать