Для работы с матрицами и векторами в существуют специальные функции 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.





