Создайте диагональную матрицу или получите диагональные элементы матрицы
D = diag(
возвращает квадратную диагональную матрицу с элементами векторного v
)v
на основной диагонали.
Создайте вектор 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([])
возвращает пустую матрицу, []
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
Поддержка комплексного числа: Да
A
— Введите матрицуВведите матрицу. diag
возвращает ошибку если ndims(A) > 2
.
diag([])
возвращает пустую матрицу, []
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
Поддержка комплексного числа: Да
k
— Диагональный номерДиагональный номер в виде целого числа. k=0
представляет основную диагональ, k>0
выше основной диагонали и k<0
ниже основной диагонали.
Для m-by-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)
Указания и ограничения по применению:
Если вы предоставляете 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)
backgroundPool
или ускорьте код с Parallel Computing Toolbox™ ThreadPool
.Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.