Создайте диагональную матрицу или получите диагональные элементы матрицы
D = diag(v)
D = diag(v,k)
x = diag(A)
x = diag(A,k)
возвращает квадратную диагональную матрицу с элементами векторного D = diag(v)
v
на основной диагонали.
помещает элементы векторного D = diag(v,k)
v
на k
th диагональ. k=0
представляет основную диагональ, k>0
выше основной диагонали, и k<0
ниже основной диагонали.
возвращает вектор - столбец основных диагональных элементов x = diag(A)
A
.
возвращает вектор - столбец элементов на x = diag(A,k)
k
th диагональ A
.
Создайте вектор 1 на 5.
v = [2 1 -1 -2 -5];
Используйте diag
, чтобы создать матрицу с элементами v
на основной диагонали.
D = diag(v)
D = 5×5
2 0 0 0 0
0 1 0 0 0
0 0 -1 0 0
0 0 0 -2 0
0 0 0 0 -5
Создайте матрицу с элементами v
на первой супер диагонали (k=1
).
D1 = diag(v,1)
D1 = 6×6
0 2 0 0 0 0
0 0 1 0 0 0
0 0 0 -1 0 0
0 0 0 0 -2 0
0 0 0 0 0 -5
0 0 0 0 0 0
Результат 6 6 матрица. Когда вы задаете вектор длины n
как входной параметр, diag
возвращает квадратную матрицу размера n+abs(k)
.
Получите элементы на основной диагонали случайного 6 6 матрица.
A = randi(10,6)
A = 6×6
9 3 10 8 7 8
10 6 5 10 8 1
2 10 9 7 8 3
10 10 2 1 4 1
7 2 5 9 7 1
1 10 10 10 2 9
x = diag(A)
x = 6×1
9
6
9
1
7
9
Получите элементы на первой поддиагонали (k=-1
) A
. Результат имеет тот меньше элемента, чем основная диагональ.
x1 = diag(A,-1)
x1 = 5×1
10
10
2
9
2
Вызов diag
дважды возвращает диагональную матрицу, состоявшую из диагональных элементов исходной матрицы.
A1 = diag(diag(A))
A1 = 6×6
9 0 0 0 0 0
0 6 0 0 0 0
0 0 9 0 0 0
0 0 0 1 0 0
0 0 0 0 7 0
0 0 0 0 0 9
v
Диагональные элементыДиагональные элементы, заданные как вектор. Если v
является вектором с элементами N
, то diag(v,k)
является квадратной матрицей порядка N+abs(k)
.
diag([])
возвращает пустую матрицу, []
.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| логический
| char
Поддержка комплексного числа: Да
A
Введите матрицуВведите матрицу. diag
возвращает ошибку если ndims(A) > 2
.
diag([])
возвращает пустую матрицу, []
.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| логический
| char
Поддержка комплексного числа: Да
k
Диагональный номерДиагональный номер, заданный как целое число. k=0
представляет основную диагональ, k>0
выше основной диагонали, и k<0
ниже основной диагонали.
Для матрицы m на n k
находится в области значений
trace
матрицы равен sum(diag(A))
.
Указания и ограничения по применению:
Если вы предоставляете k
, то это должно быть действительное и скалярное целочисленное значение.
Для входных параметров переменного размера, которые являются векторами переменной длины (1 на: или:-1), diag
:
Обрабатывает входной параметр как векторный входной параметр
Возвращает матрицу с данным вектором по заданной диагонали
Для входных параметров переменного размера, которые не являются векторами переменной длины, diag
:
Обрабатывает входной параметр как матрицу
Не поддерживает входные параметры, которые являются векторами во время выполнения
Возвращает вектор переменной длины
Если входной параметр является переменным размером (: m-by-:n), и имеет форму 0 на 0 во время выполнения, затем вывод 0 1 не 0 на 0. Однако, если входной параметр является постоянным размером 0 на 0, то выводом является []
.
Для входных параметров переменного размера, которые не являются векторами переменной длины (1 на: или:-1), diag
обрабатывает входной параметр как матрицу, из которой можно извлечь диагональный вектор. Это поведение происходит, даже если входной массив является вектором во время выполнения. Чтобы обеспечить diag
, чтобы создать матрицу из входных параметров переменного размера, которые не являются 1 на: или:-1, используйте:
diag(x(:))
вместо diag(x)
diag(x(:),k)
вместо diag(x,k)
Эта функция полностью поддерживает массивы GPU. Для получения дополнительной информации смотрите функции MATLAB Выполнения на GPU (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Выполнения с Распределенными Массивами (Parallel Computing Toolbox).
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.