В системе MatLab достаточно просто выполняются математические операции над матрицами и векторами. Рассмотрим сначала простые операции сложения и умножения матриц и векторов. Пусть даны два вектора
a = [1 2 3 4 5]; % вектор-строка
b = [1; 1; 1; 1; 1]; % вектор-столбец
тогда умножение этих двух векторов можно записать так
c = a*b; % c=1+2+3+4+5=16
d = b*a; % d – матрица 5х5 элементов
В соответствии с операциями над векторами, умножение вектор-строки на вектор-столбец дает число, а умножение вектор-столбца на вектор-строку дает двумерную матрицу, что и является результатом вычислений в приведенном примере, т.е.
Сложение и вычитание двух векторов записывается так
a1 = [1 2 3 4 5];
a2 = [5 4 3 2 1];
c = a1+a2; % c = [1+5, 2+4, 3+3, 4+2, 5+1];
с = a2-a1; % c = [5-1, 4-2, 3-3, 2-4, 1-5];
Следует обратить внимание, что операции сложения и вычитания можно выполнять между двумя векторами-столбцами или двумя векторами-строками. Иначе MatLab выдаст сообщение об ошибке, т.к. разнотипные векторы складывать нельзя. Так обстоит дело со всеми недопустимыми арифметическими операциями: в случае невозможности их вычисления система MatLab сообщит об ошибке и выполнение программы будет завершено на соответствующей строке.
Аналогичным образом выполняются операции умножения и сложения между матрицами:
A = [1 2 3; 4 5 6; 7 8 9];
B = ones(3);
C = A+B; % сложение двух матриц одинакового размера
D = A+5; % сложение матрицы и числа
E = A*B; % умножение матрицы А на В
F = B*A; % умножение матрицы В на А
G = 5*A; % умножение матрицы на число
Операции вычисления обратной матрицы, а также транспонирования матриц и векторов, записываются следующим образом:
a = [1 1 1]; % вектор-строка
b = a’; % вектор-столбец, образованный
% транспонированием вектора-строки а.
A = [1 2 3; 4 5 6; 7 8 9]; % матрица 3х3 элемента
B = a*A; % B = [12 15 18] – вектор-строка
C = A*b; % C = [6; 15; 24] – вектор-столбец
D = a*A*a’; % D = 45 – число, сумма эл-ов матрицы А
E = A’; % E – транспонированная матрица А
F = inv(A); % F – обратная матрица А
G = A^-1; % G – обратная матрица А
Из приведенного примера видно, что операция транспонирования матриц и векторов обозначается символом ‘ (апостроф), который ставится после имени вектора или матрицы. Вычисление обратной матрицы можно делать путем вызова функции inv() или возводя матрицу в степень -1. Результат в обоих случаях будет одинаковым, а два способа вычисления сделано для удобства использования при реализации различных алгоритмов.
Если в процессе вычислений требуется поэлементно умножить, разделить или возвести в степень элементы вектора или матрицы, то для этого используются операторы:
.* — поэлементное умножение;
./ и . — поэлементные деления;
.^ — поэлементное возведение в степень.
Рассмотрим работу данных операторов на следующем примере.
a = [1 2 3]; % вектор-строка
b = [3 2 1]; % вектор-строка
c = a.*b; % c = [3 4 3]
A = ones(3); % матрица 3х3, состоящая из единиц
B = [1 2 3;4 5 6; 7 8 9]; % матрица 3х3
C = A.*B; % матрица 3х3, состоящая из
D = A./B; % матрица 3х3, состоящая из
E = A.B; % матрица 3х3, состоящая из
F = A.^2; % возведение элементов матрицы А в квадрат
В заключении данного параграфа рассмотрим несколько функций полезных при работе с векторами и матрицами.
Для поиска максимального значения элемента вектора используется стандартная функция max(), которая возвращает найденное максимальное значение элемента и его позицию (индекс):
a = [1 6 3 4];
[v, i] = max(a); % v = 6, i = 2;
Приведенный пример показывает два разных способа вызова функции max(). В первом случае определяется и максимальное значение элемента и его индекс в векторе, а во втором – только максимальное значение элемента.
В случае с матрицами, данная функция определяет максимальные значения, стоящие в столбцах, как показано ниже в примере:
A = [4 3 5; 6 7 2; 3 1 8];
[V, I] = max(A); % V=[6 7 8], I = [2 2 3]
V = max(A); % V=[6 7 8]
Полный синтаксис функции max() можно узнать, набрав в командном окне MatLab команду
Аналогичным образом работает функция min(), которая определяет минимальное значение элемента вектора или матрицы и его индекс.
Другой полезной функцией работы с матрицами и векторами является функция sum(), которая вычисляет сумму значений элементов вектора или столбцов матрицы:
a = [3 5 4 2 1];
s = sum(a); % s = 3+5+4+2+1=15
A = [4 3 5; 6 7 2; 3 1 8];
S1 = sum(A); % S1=[13 11 15]
S2 = sum(sum(A)); % S2=39
При вычислении суммы S2 сначала вычисляется сумма значений элементов матрицы А по столбцам, а затем, по строкам. В результате, переменная S2 содержит сумму значений всех элементов матрицы А.
Для сортировки значений элементов вектора или матрицы по возрастанию или убыванию используется функция sort() следующим образом:
b1 = sort(a); % b1=[1 2 3 4 5]
b2 = sort(a, ‘descend’); % b2=[5 4 3 2 1]
b3 = sort(a, ‘ascend’); % b3=[1 2 3 4 5]
A = [4 3 5; 6 7 2; 3 1 8];
B1 = sort(A); % B1=[3 1 2
% 4 3 5
% 6 7 8]
B2 = sort(A, ‘descend’); % B2=[6 7 8
% 4 3 5
% 3 1 2]
Во многих практических задачах часто требуется найти определенный элемент в векторе или матрице. Это можно выполнить с помощью стандартной функции find(), которая в качестве аргумента принимает условие, в соответствии с которым и находятся требуемые элементы, например:
a = [3 5 4 2 1];
b1 = find(a == 2); % b1 = 4 – индекс элемента 2
b2 = find(a
= 2); % b2 = [1 2 3 5] – индексы без 2
b3 = find(a > 3); % b3 = [2 3]
В приведенном примере символ ‘==’ означает проверку на равенство, а символ ‘
=’ выполняет проверку на неравенство значений элементов вектора а. Более подробно об этих операторах будет описано в разделе условные операторы.
Еще одной полезной функцией работы с векторами и матрицами является функция mean() для вычисления среднего арифметического значения, которая работает следующим образом:
a = [3 5 4 2 1];
m = mean(a); % m = 3
A = [4 3 5; 6 7 2; 3 1 8];
M1 = mean(A); % M1 = [4.333 3.667 5.000]
M2 = mean(mean(A)); % M2 = 4.333
© 2022 Научная библиотека
Копирование информации со страницы разрешается только с указанием ссылки на данный сайт
- Суммирование элементов матрицы в MATLAB
- Суммируйте элементы матрицы, используя цикл в MATLAB
- Суммируйте элементы матрицы, используя функцию sum() в MATLAB
- Сумма элементов вектора матлаб
- Syntax
- Description
- Examples
- Sum of Vector Elements
- Sum of Matrix Columns
- Sum of Matrix Rows
- Sum of Array Slices
- Sum of 3-D Array
- Sum of 32-bit Integers
- Sum Excluding NaN
- Input Arguments
- A — Input array vector | matrix | multidimensional array
- dim — Dimension to operate along positive integer scalar
- vecdim — Vector of dimensions vector of positive integers
- outtype — Output data type ‘default’ (default) | ‘double’ | ‘native’
- nanflag — NaN condition ‘ includenan ’ (default) | ‘ omitnan ’
- Extended Capabilities
- Tall Arrays Calculate with arrays that have more rows than fit in memory.
- C/C++ Code Generation Generate C and C++ code using MATLAB® Coder™.
- GPU Code Generation Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
- Thread-Based Environment Run code in the background using MATLAB® backgroundPool or accelerate code with Parallel Computing Toolbox™ ThreadPool .
- GPU Arrays Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
- Distributed Arrays Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
- 📽️ Видео
Видео:2-4 MATLAB - Матрицы и индексацияСкачать
Суммирование элементов матрицы в MATLAB
В этом руководстве будет обсуждаться, как суммировать элементы матрицы с помощью цикла и функции sum() в MATLAB.
Видео:Математика это не ИсламСкачать
Суммируйте элементы матрицы, используя цикл в MATLAB
В матрице существует два вида индексации; один — это индексирование строк и столбцов, при котором мы должны указать номер строки и столбца для доступа к элементу, присутствующему в матрице, второй — это линейное индексирование, при котором мы можем получить доступ к элементу, используя только его линейный индекс. Например, см. Код ниже.
В приведенном выше коде мы обращаемся к последнему элементу матрицы, используя оба вида индексации. При линейной индексации элементы присутствуют в матрице, начиная с первого столбца. Итак, если вы отсчитываете от первого столбца, последний элемент присутствует в шестом индексе. Чтобы перебрать матрицу с использованием индексации строк и столбцов, вам потребуется два цикла, но в случае линейной индексации вам потребуется только один цикл. Например, давайте переберем матрицу, используя линейную индексацию и найдя сумму всех элементов. См. Код ниже.
Выше мы использовали функцию numel() , чтобы получить общее количество элементов, присутствующих в данной матрице, и вычислили сумму всех элементов, присутствующих в матрице, используя цикл и линейную индексацию.
Видео:MATLAB 04 Массивы и матрицыСкачать
Суммируйте элементы матрицы, используя функцию sum() в MATLAB
Чтобы найти сумму всех элементов матрицы, вы можете использовать функцию sum() . В случае матрицы вы должны использовать функцию sum() два раза, один для строк и один для столбцов, но в случае вектора вы должны использовать sum() только один раз. . Например, давайте найдем сумму всех элементов, присутствующих в данной матрице. См. Код ниже.
Вы также можете выбрать размеры матрицы, по которой вы хотите вычислить сумму. Посетите эту ссылку, чтобы узнать больше о функции sum() .
Видео:Работа с массивами. Вектор столбцы и вектор строки 1. Урок 7Скачать
Сумма элементов вектора матлаб
Sum of array elements
Видео:Matlab Tutorial - 27 - Extracting a Subset of Vector ElementsСкачать
Syntax
Видео:Задача на нахождение суммы элементов двухмерного массиваСкачать
Description
S = sum( A ) returns the sum of the elements of A along the first array dimension whose size does not equal 1.
If A is a vector, then sum(A) returns the sum of the elements.
If A is a matrix, then sum(A) returns a row vector containing the sum of each column.
If A is a multidimensional array, then sum(A) operates along the first array dimension whose size does not equal 1, treating the elements as vectors. This dimension becomes 1 while the sizes of all other dimensions remain the same.
S = sum( A , ‘all’ ) computes the sum of all elements of A . This syntax is valid for MATLAB ® versions R2018b and later.
S = sum( A , dim ) returns the sum along dimension dim . For example, if A is a matrix, then sum(A,2) is a column vector containing the sum of each row.
S = sum( A , vecdim ) sums the elements of A based on the dimensions specified in the vector vecdim . For example, if A is a matrix, then sum(A,[1 2]) is the sum of all elements in A , since every element of a matrix is contained in the array slice defined by dimensions 1 and 2.
S = sum( ___ , outtype ) returns the sum with a specified data type, using any of the input arguments in the previous syntaxes. outtype can be ‘default’ , ‘double’ , or ‘native’ .
S = sum( ___ , nanflag ) specifies whether to include or omit NaN values from the calculation for any of the previous syntaxes. sum(A,’includenan’) includes all NaN values in the calculation while sum(A,’omitnan’) ignores them.
Видео:Основы линейной алгебры. 2. Векторы. Часть 1Скачать
Examples
Sum of Vector Elements
Create a vector and compute the sum of its elements.
Sum of Matrix Columns
Create a matrix and compute the sum of the elements in each column.
Sum of Matrix Rows
Create a matrix and compute the sum of the elements in each row.
Sum of Array Slices
Use a vector dimension argument to operate on specific slices of an array.
Create a 3-D array whose elements are 1.
To sum all elements in each page of A , specify the dimensions in which to sum (row and column) using a vector dimension argument. Since both pages are a 4-by-3 matrix of ones, the sum of each page is 12.
If you slice A along the first dimension, you can sum the elements of the resulting 4 pages, which are each 3-by-2 matrices.
Slicing along the second dimension, each page sum is over a 4-by-2 matrix.
Starting in R2018b, to sum over all dimensions of an array, you can either specify each dimension in the vector dimension argument, or use the ‘all’ option.
Sum of 3-D Array
Create a 4-by-2-by-3 array of ones and compute the sum along the third dimension.
Sum of 32-bit Integers
Create a vector of 32-bit integers and compute the int32 sum of its elements by specifying the output type as native .
Sum Excluding NaN
Create a vector and compute its sum, excluding NaN values.
If you do not specify ‘omitnan’ , then sum(A) returns NaN .
Видео:Задачи с массивами | Pascal | Сумма и поиск элементовСкачать
Input Arguments
A — Input array
vector | matrix | multidimensional array
Input array, specified as a vector, matrix, or multidimensional array.
If A is a scalar, then sum(A) returns A .
If A is an empty 0-by-0 matrix, then sum(A) returns 0 .
Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | duration
Complex Number Support: Yes
dim — Dimension to operate along
positive integer scalar
Dimension to operate along, specified as a positive integer scalar. If no value is specified, then the default is the first array dimension whose size does not equal 1.
Dimension dim indicates the dimension whose length reduces to 1. The size(S,dim) is 1 , while the sizes of all other dimensions remain the same.
Consider a two-dimensional input array, A :
sum(A,1) operates on successive elements in the columns of A and returns a row vector of the sums of each column.
sum(A,2) operates on successive elements in the rows of A and returns a column vector of the sums of each row.
sum returns A when dim is greater than ndims(A) or when size(A,dim) is 1 .
Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
vecdim — Vector of dimensions
vector of positive integers
Vector of dimensions, specified as a vector of positive integers. Each element represents a dimension of the input array. The lengths of the output in the specified operating dimensions are 1, while the others remain the same.
Consider a 2-by-3-by-3 input array, A . Then sum(A,[1 2]) returns a 1-by-1-by-3 array whose elements are the sums of each page of A .
Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
outtype — Output data type
‘default’ (default) | ‘double’ | ‘native’
Output data type, specified as ‘default’ , ‘double’ , or ‘native’ . These options also specify the data type in which the operation is performed.
outtype | Output data type |
---|---|
‘default’ | double , unless the input data type is single or duration , in which case, the output is ‘native’ |
‘double’ | double , unless the data type is duration , in which case, ‘double’ is not supported |
‘native’ | same data type as the input, unless the input data type is char , in which case, ‘native’ is not supported |
Data Types: char
nanflag — NaN condition
‘ includenan ’ (default) | ‘ omitnan ’
NaN condition, specified as one of these values:
‘includenan’ — Include NaN values when computing the sum, resulting in NaN .
‘omitnan’ — Ignore all NaN values in the input.
Data Types: char
Видео:accumulate c++ | сумма и произведение элементов массива | Библиотека (stl) C++ #19Скачать
Extended Capabilities
Tall Arrays
Calculate with arrays that have more rows than fit in memory.
This function fully supports tall arrays. For more information, see Tall Arrays.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
If you specify dim , then it must be a constant.
The outtype and nanflag options must be constant character vectors.
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Usage notes and limitations:
If you specify dim , then it must be a constant.
The outtype and nanflag options must be constant character vectors.
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 order of the additions in the sum operation is not defined. Therefore, the sum operation on a GPU array might not return exactly the same answer as the sum operation on the corresponding MATLAB numeric array. The difference might be significant when A is a signed integer type and its product is accumulated natively.
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 order of the additions in sum operation is not defined. Therefore, the sum operation on a distributed array might not return exactly the same answer as the sum operation on the corresponding MATLAB numeric array. The difference might be significant when A is a signed integer type and its product is accumulated natively.
For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox) .
📽️ Видео
MatLab Вычисление сумм и произведенийСкачать
MatlabTutor - 1. Знакомство с системой. Переменные, присвоение, массивы и вектора.Скачать
Индексация массивов в языке MATLAB (GNU Octave). ВекторыСкачать
MatLab. 3. 2b. Сложение, вычитание и умножение векторовСкачать
Основы МАТЛАБ. ДВУМЕРНЫЕ МАССИВЫ И МАТРИЦЫСкачать
ВМСС23 Лекция 2 1 Векторы и МатлабСкачать
MatLab. 3.2. Двумерные массивы чисел: матрицы и векторыСкачать
MatLab. Урок 1. Основы программирования.Скачать
Подсчёт положительных элементов массиваСкачать