Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Основные функции > Элементарные матрицы > diag

diag

включение или исключение диагонали

Синтаксис

[y]=diag(vm, [k])

Аргументы

vm

вектор или матрица (полная или разрежённая)

k

целое число (значение по умолчанию: 0)

y

вектор или матрица

Описание

Для vm, вектора-строки (или вектора-столбца) с n элементами, diag(vm) возвращает диагональную матрицу с элементами из vm вдоль главной диагонали.

diag(vm,k) является матрицей (n+abs(k))x(n+abs(k)) с элементами из vm вдоль k-той диагонали. k=0 является главной диагональю; для верхних диагоналей k>0; для нижних диагоналей k<0.

Для матрицы vm, diag(vm,k) является вектором-столбцом, составленным из элементов k-той диагонали в vm. diag(vm) является главной диагональю vm. diag(diag(x)) является диагональной матрицей.

Если vm является разрежённой матрицей, то diag(vm,k) возвращает разряжённую матрицу.

Чтобы построить диагональную линейную систему, используйте sysdiag.

Заметьте, что eye(A).*A возвращает диагональную матрицу, построенную с диагональными элементами из A. Это правильно для любой матрицы (констант, полиномиальной, рациональной, линейной системы пространств-состояний, ...).

Примеры

diag([1,2])

A=[1,2;3,4];
diag(A)  // главная диагональ
diag(A,1)

diag(sparse(1:10))  // разряжённую диагональная матрица

// формируем трёхдиагональную матрицу размером 2*m+1
m=5;diag(-m:m) +  diag(ones(2*m,1),1) +diag(ones(2*m,1),-1)

Смотрите также

  • sysdiag — соединение блочно-диагональной системы
  • sparse — sparse matrix definition
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 14 15:13:21 CET 2017