Для создания матриц определенного размера, структуры и содержания в Scilabможно использовать встроенные функции ones, zeros, eye, rand, repmat и некоторые другие, описанные в Приложении 1.3, табл.1.3.2-1.
Перечисленные выше функции имеют следующие назначения: ones–создает единичную матрицу; zeros –имеет те же форматы, что и функция ones, но создает матрицу, состоящую из нулей; eye –создает матрицу с единицами на главной диагонали; rand–создает матрицу чисел двойной точности со случайными вещественными или комплексными элементами;repmat –создает большую матрицу, состоящую из копий другой матрицы, заданной параметром.
Все перечисленные выше функции (кроме функции repmat) в зависимости от входных параметров, создают матрицы в соответствии с заданной размерностью (или того же размера), что и уже существующая матрица, указанная в параметрах.
Рассмотрим несколько примеров по созданию матриц с использованием описанных функций (рис. 1.3.2-3).
-->// Создание матриц с помощью функций --> -->A = ones(2, 2) // Матрицы, состоящей из 1 A = 1. 1. 1. 1. --> -->B = zeros(2, 2)// Матрицы, состоящей из 0 B = 0. 0. 0. 0. --> -->C = eye(A) // Матрицы в которой элементы -->// главной диагонали равны 1 C = 1. 0. 0. 1. --> -->r = rand(A) // Матрицы из случайных чисел r = 0.7560439 0.3303271 0.2211 53811 --> -->D = repmat(1:3,2,2) D = 1. 2. 3. 1. 2. 3. 1. 2. 3. 1. 2. 3. --> --> f = testmatrix('frk',3) // Матрица Franck f = 3. 2. 1. 2. 2. 1. 0. 1. 1. |
Рис. 1.3.2-3. Созданиеспециальных матрицы с помощью встроенных функций
Создание матриц путем объединения существующих
Новую матрицу можно создать ипутем объединения уже существующих матриц с помощью операции [] и соответствующих функций. В этом случае операция [] используется не только как конструктор матриц, но и как операция объединения. Например, выражение c=[mA,mB] предполагает горизонтальное сцепление матриц mA и mB, а mC=[mA;mB] их вертикальное объединение (рис. 1.3.2-4).
--> // Примеры матриц, созданных путем объединения --> --> // Пример 1 --> ma = ones(2, 4) * 3; --> mb = rand(3, 4); -->mc = [ma; mb] mc = 3. 3. 3. 3. 3. 3. 3. 3. 0.2113249 0.3303271 0.8497452 0.068374 0.7560439 0.6653811 0.685731 0.5608486 0.0002211 0.6283918 0.8782165 0.6623569 --> --> // Пример2 -->md = [5.36, 7.01, [], 9.44] md = 5.36 7.01 9.44 // Пустая матрица не влияет на формирования md |
Рис. 1.2.3-4 Примеры создания новых матриц путем
объединения уже существующих
В Примере1 создается новая матрица m c из матриц m a и m b в вертикальном направлении, а в Примере2 создается новая матрица m d из матриц m a и m b в горизонтальном направлении.
Кроме операции объединения в Scilab имеется встроенная функция cat, которая также позволяет объединить существующие матрицы для формирования новой матрицы. Функция cat возвращает матрицу, которая образуется путем сцепления двух или нескольких матриц, перечисленных в параметрах. Эта функция являются альтернативой операции [] для объединения матриц. С помощью этой функции можно построить новые матрицы вдоль заданного измерения (рис. 1.3.2-5).
-->// Сцепление по строкам и столбцам --> -->A = [1 2 3; 6 7 8]; B = [0 8 7; 3 2 1]; -->C = cat(1, A, B) // Сцепление по строкам C = 1. 2. 3. 6. 7. 8. 0. 8. 7. 3. 2. 1. --> // Сцепление по столбцам --> C = cat(2, A, B) C = 1. 2. 3. 0. 8. 7. 6. 7. 8. 3. 2. 1. |
Рис. 1.2.3-5 Сцепление матриц по строкам и столбцам
Дата: 2019-11-01, просмотров: 385.