Назад к материалам

Специальные матричные функции

часто используемые функции для работы с матрицами в Scilab

Специальные матричные функции

Для работы с матрицами и векторами в существуют специальные функции Scilab. Рассмотрим наиболее часто используемые из них.

Основные функции для работы с матрицами рассмотрены в статье Массивы в Scilab.
Другие полезные функции рассмотрены в статье Функции для решения задач линейной алгебры в Scilab

Ниже остановимся на специальных функциях: поиска минимального и максимального элементов, сортировки, объединения массивов в Scilab и т.д..

Задание матриц/векторов специального вида

Создаём матрицу из единиц: функция ones(n,m) в Scilab

Указываем число строк и число столбцов матрицы.

Задаём вектор-строк и вектор-столбец единиц

R = ones(1,3);  
C = ones(3,1); 

Задаём матрицу из единиц размерностью m на n

A = ones(3, 2);  
S = ones(2, 2); 

Задаём матрицу D из единиц, той же размерности, что и матрица A

A = [1 2 3;4 5 6];
D = ones(M);

Создаём матрицу из нулей: функция zeros(n,m) в Scilab

Указываем число строк и число столбцов матрицы.

Задаём вектор-строк и вектор-столбец нулей

R = zeros(1,3);  
C = zeros(3,1); 

Задаём матрицу нулей размерностью m на n

A = zeros(3, 2);  
S = zeros(2, 2); 

Задаём матрицу D из нулей, той же размерности, что и матрица A

A = [1 5 4;3 2 6];
D = zeros(M);

Создаём единичную матрицу: функция eye(n,m) в Scilab

Указываем число строк и число столбцов матрицы.

Задаём единичную матрицу нулей размерностью m на n

A = eye(3, 3);  
B = eye(3, 4); 
V = eye(3,1)

Задаём единичную матрицу D, той же размерности, что и матрица A

A = [1 2;4 5];
D = eye(M);

Создаём случайную матрицу/вектор: функция rand(n,m, key) в Scilab

Указываем число строк и число столбцов матрицы и необязательный параметр key - это символьная переменная с помощью которой можно задать тип распределения случайной величины (по умолчанию равномерное - 'uniform': гауссовское - 'normal').

Задаём матрицу m на n случайных чисел

A = rand(3, 2);  
V = rand(3,1,'normal');

Создаём квадратную матрицу с элемнтами V на k-oй диагонали: функция diag(V,k) в Scilab

Задаём вектор V и указываем, на какой диагонали его разместить.

V = [1 2 3];
A = diag(V);  

Задаём главную диагональ

V = [1 2 3];
В = diag(V, 1);
С = diag(V, -1);  

Задаём произвольную диагональ: выше или ниже главной

Создаём нижне-треугольную матрицу: функция tril(A,k) в Scilab

Указывавем матрицу, из которой будем формировать нижне-треугольную и диагональ, с которой начинать

A = [1 1 1; 2 2 2; 3 3 3];
B1 = tril(A);
B2 = tril(A, 1);
B3 = tril(A, -1);

Создаём верхне-треугольную матрицу: функции triu(A,k) в Scilab

Указывавем матрицу, из которой будем формировать верхне-треугольную и диагональ, с которой начинать

A = [1 1 1; 2 2 2; 3 3 3];
B1 = tril(A);
B2 = tril(A, 2);
B3 = tril(A, -1);

Создаём разреженную матрицу: функции sparse(V1, V2) в Scilab

- вектор координат(строка, столбец) ненулевых эелемнтов
- вектор значений ненулевых эелемнтов

A = sparse([1 2; 2 5; 3 1; 3 4], [8 9 15 11]);
full(A);

Функции преобразования матриц/векторов

Изменяем размер матрицы: функция matrix(A ,n,m) в Scilab

A = [1 2;3 4;5 6];  

Исходная матрица.

Указываем матрицу, которую меняем, потом число строк и число столбцов новой матрицы.

B1 = matrix(A,2,3);
B2 = matrix(A,3,2);
B3 = matrix(A,1,6);
B4 = matrix(A,6,1);

Преобразованные матрицы

Конкатенация (склейка) матриц/векторов: функция cat(n, A, B) в Scilab

Склеиваем матрицы по строкам, т.е. друг под другом

A = [1 2; 3 4];
B = [5 6; 7 8];
C = cat(1, A, B);  

Объединяем вектора (массивы) по строкам, т.е. друг под другом

A = [1 2 3 4];
B = [5 6 7 8];
C = cat(1, A, B);  

Склеиваем матрицы по столбцам, т.е. друг за другом

A = [1 2; 3 4];
B = [5 6; 7 8];
C = cat(2, A, B);  

Объединяем вектора (массивы) по столбцам, т.е. друг за другом

A = [1 2 3 4];
B = [5 6 7 8];
C = cat(2, A, B);  

Сортируем элементы матриц/векторов: функция gsort(A,option,direction) в Scilab

option - символьная строка. Она задаёт тип требуемой сортировки:
'r' - сортируется каждый столбец A
'c' - сортируется каждая строка A
'g' - сортируются все элементы A. Это значение по умолчанию.

direction - символьная строка. Она задаёт направление сортировки:
'i' устанавливает порядок возрастания,
'd' устанавливает порядок убывания (по умолчанию).

A = [7 2; 4 10];

B1 = gsort(A, 'r');
B2 = gsort(A, 'c');
B3 = gsort(A); 
B4 = gsort(A, 'c', 'i');

Функции вычисления различных характеристик матриц/векторов

Определяем размер матриц/векторов: функция size(A,option) в Scilab

option - символьная строка. Она возволяет определить:
'r' - число строк матрицы A
'c' - число столбцов матрицы A.

A = [7 2 1; 3 4 10];
  
[m, n] = size(A);
  
m = size(A, 'r');
n = size(A, 'c');

Найдём сумму элементов массива/матрицы: функция sum(A,option) в Scilab

option - символьная строка. Она возволяет определить:
'r' - поэлементную сумму строк матрицы A. Возвращает строку.
'c' - поэлементную сумму столбцов матрицы A. Возвращает столбец.

Если option отсутствует, то возвращается сумма всех элементов.

A = [7 2 1; 3 4 10];
  
R = sum(A, 'r');
V = sum(A, 'c');
S = sum(A);

Найдём произведение элементов массива/матрицы: функция prod(A,option) в Scilab

option - символьная строка. Она возволяет определить:
'r' - поэлементное произведение строк матрицы A. Возвращает строку.
'c' - поэлементное произведение столбцов матрицы A. Возвращает столбец.

Если option отсутствует, то возвращается произведение всех элементов.

A = [7 2 1; 3 4 10];
  
R = sum(A, 'r');
V = sum(A, 'c');
P = sum(A);

Найдём наибольший элемент массива/матрицы: функция max(A,option) в Scilab

option - символьная строка. Она возволяет определить:
'r' - наибольший элемент в каждом столбце матрицы A. Возвращает строку.
'c' - наибольший элемент в каждой строке матрицы A. Возвращает столбец.

Если option отсутствует, то возвращается наибольший элемент во всей матрице.

A = [7 2 1; 3 4 10];
  
R = max(A, 'r');
V = max(A, 'c');
M = max(A);

Найдём наименьший элемент массива/матрицы: функция min(A,option) в Scilab

option - символьная строка. Она возволяет определить:
'r' - наименьший элемент в каждом столбце матрицы A. Возвращает строку.
'c' - наименьший элемент в каждой строке матрицы A. Возвращает столбец.

Если option отсутствует, то возвращается наименьший элемент во всей матрице.

A = [7 2 1; 3 4 10];
  
R = min(A, 'r');
V = min(A, 'c');
M = min(A);

Найдём среднее значение массива/матрицы: функция mean(A,option) в Scilab

option - символьная строка. Она возволяет определить:
'r' - среднее значение в каждом столбце матрицы A. Возвращает строку.
'c' - среднее значение в каждой строке матрицы A. Возвращает столбец.

Если option отсутствует, то возвращается среднее значение всей матрицы.

A = [7 2 1; 3 4 10];
  
R = mean(A, 'r');
V = mean(A, 'c');
M = mean(A);

Основные функции для работы с матрицами рассмотрены в статье Массивы в Scilab.