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

Для создания матриц определенного размера, структуры и содержания в 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.