diag

Функция создания диагональной матрицы.

Синтаксис

M = diag(X);
M = diag(X, nrow);
M = diag(X, nrow, ncol);

Аргументы

Имя Тип данных Описание
X array / carray Входной массив
nrow integer Количество строк в выходной матрице, значение должно быть больше размерности входного массива X
ncol integer Количество столбцов в выходной матрице, значение должно быть больше размерности входного массива X

Описание

diag(X) – функция возвращает квадратную матрицу, у которой диагональные элементы равны элементам вектора X (диагональную матрицу). Все остальные элементы матрицы, стоящие вне главной диагонали, равны нулю.

diag(X, nrow) – функция возвращает прямоугольную матрицу, у которой количество строк равно nrow, количество столбцов определяется размерностью X, диагональные элементы равны элементам вектора X. Все остальные элементы матрицы, стоящие вне главной диагонали, равны нулю.

diag(X, nrow, ncol) – функция возвращает прямоугольную матрицу размерности nrow × ncol, у которой диагональные элементы подматрицы размерности cols(X) × cols(X) равны элементам вектора X. Все остальные элементы матрицы равны нулю.

Входной массив X может задаваться:

  • как переменная типа массив, определенная ранее:

    М = diag(X);

  • как массив, состоящий из переменных, определенных ранее:

    M = diag([x1, x2, x3, x4]);

  • как постоянный массив:

    M = diag([1, 2, 3, 4]);

Количество строк и столбцов может задаваться аналогичным образом как переменная или константа.

Результат

Имя Тип данных Описание
M array2 / carray2 Диагональная квадратная матрица, если не заданы nrow и ncol. Диагональная матрица, дополненная нулевыми строками и столбцами, если заданы nrow и ncol

Пример 1

const X = [2, 2, 1, 3, 4];  
M = diag(X);
В результате переменной M будет присвоено значение матрицы, у которой диагональные элементы равны элементам вектора X:
[[2, 0, 0, 0, 0],
 [0, 2, 0, 0, 0],
 [0, 0, 1, 0, 0], 
 [0, 0, 0, 3, 0],
 [0, 0, 0, 0, 4]]

Пример 2

const X = [2, 1, 3];  
M = diag(X, 5);

В результате переменной M будет присвоено значение прямоугольной матрицы размерности 5×3, у которой элементы главной диагонали равны элементам вектора X:

[[2, 0, 0],
 [0, 1, 0],
 [0, 0, 3], 
 [0, 0, 0],
 [0, 0, 0]]

Пример 3

const X = [2, 1, 3];  
M = diag(X, 4, 4);

В результате переменной M будет присвоено значение прямоугольной матрицы размерности 4×4, включающей в себя диагональную матрицу 3×3, дополненную нулевыми строками и столбцами:

[[2, 0, 0, 0],
 [0, 1, 0, 0],
 [0, 0, 3, 0], 
 [0, 0, 0, 0]]

Сопутствующие материалы

Материалов нет.