Операции и функции с матрицами
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

В п.1.2.2 уже рассматривалась операция присваивания значений отдельным элементам матрицы и всей матрице, а на рис. 1.2.2-2–1.2.2-5, были приведены примеры с использованием этих операций. Поэтому достаточно только напомнить, что операции для числовых данных без точки действуют в соответствии с правилами линейной алгебры, а операции с точкой осуществляют поэлементные операции над элементами массивов.

В Scilab имеется большое число функций, которые вычисляют различные характеристики матриц. Некоторые из них приведены в
Приложении 1.3, табл. 1.3.4-1.

Напомним, что функции, определяющие структуру матриц приведены в
Приложении 1.2, табл. 1.2.2-4.

Немаловажную роль в Scilab играют так называемые пустые матрицы. Базой для пустых матриц является то, что любая операция, определенная для матрицы m×n, должна быть разрешена даже, если m или n равны нулю. Размер результата этой операции соответствует результату, получаемому при работе с непустыми значениями, но все значения равны 0.

Например, горизонтальная конкатенация (объединение) C=[A B] требует, чтобы матрицы A и B имели одинаковое количество строк. То есть, что если A –матрица размером m× n , а B - матрица размером m × p, то матрица C будет размером m×(n+p). Это будет по-прежнему верно, если m, n или p равно нулю.

На рис.1.3.4-1 приведены некоторые общие операции, которые возвращают ненулевые значения в пустом массиве.

 

--> // Доступ к нескольким элементам матрицы --> -->A = [1 1 1 1; 2 2 2 2; 3 3 3 3; 4 4 4 4]; -->B = A; -->B(1:3:16) = -10  B =  -10. 1. 1. -10. 2. 2. -10. 2. 3. -10. 3. 3.  -10. 4. 4. -10.

 

Рис. 1.3.3-8. Доступ к нескольким элементам матрицы

 

Все поэлементные операции над пустыми матрицами считаются действительными до тех пор, пока согласованы размеры операндов, или непустой операнд является скалярным. Поэлементные операции над пустыми матрицами всегда возвращают пустую матрицу (рис.1.3.4-2)

Любое вещественное или комплексное число представлено в Scilab как матрица 1×1, называемая скалярным значением, однако к нему также применимы некоторые функции над матрицами (рис. 1.3.4-2).

 

--> // Проверка характеристик матрицы1х1 --> --> // А – матрица1х1 -->A = 5; -->ndims(A) // Проверка количества измерений вА ans = 2. -->size(A) // Проверка значений строк и столбцов ans = 1. 1. -->isscalar(A) // Проверка, имеет ли A скалярное значение ans = T

 

Рис. 1.3.4-2. Проверка характеристик матрицы 1х1

 

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

 

--> // Пример числового вектора --> --> A = [5.73, 2 - 4*%i, 9/7, 25*%e, .046, sqrt(32), %i*8]; --> size(A) // Определение числа строк и столбцов  ans = 1. 7.

 

Рис. 1.3.4-3. Пример числового вектора

 

Вектор может быть построен из других векторов, если, конечно, правильно согласованы их размеры. Все компоненты вектора строки должны быть скалярами или другими векторами строк (рис.1.3.4-4). Аналогично, все компоненты вектора столбца должны быть скалярами или другими векторами столбцов.

 

--> // Пример построения вектора из других векторов --> --> A = [29 43 77 9 21]; --> B = [0 46 11]; --> C = [A 5 1 B]  C = 29. 43. 77. 9. 21. 5. 1. 0. 46. 11. --> --> A = [5.36; 7.01; []; 9.44] // Объединение с пустым вектором  A = 5.36 7.01 9.44 --> isvector(A) // Функция, определяющая, является ли переменная вектором  ans = T

 

Рис.1.3.4-4 Пример построения векторов из других векторов

 

Из примеров, приведенных на рис 1.3.4-4, следует, что конкатенация пустой матрицы с вектором не влияет на результирующий вектор. В этом случае пустая матрица просто игнорируется, а проверить, является ли переменная вектором можно с использованием функции isvector.

 

 



Логическая индексация

 

Естественным продолжением операций над матрицами и их элементами является векторизация операций сравнения, поиска, принятия решений и логических операций (п. 1.2.3). Напомним, что операции сравнения и логические операции в Scilab над массивами возвращают в качестве результата массив логического типа со значениями элементов % Fи %T.

Дата: 2019-11-01, просмотров: 287.