Матрица Теплица
T = toeplitz(
возвращает несимметричную матрицу Теплица с c
,r
)c
как его первый столбец и r
как его первая строка. Если первые элементы c
и r
отличайтесь, toeplitz
выдает предупреждение и использует элемент столбца для диагонали.
T = toeplitz(
возвращает симметричную матрицу Теплица где:r
)
Если r
вектор действительных чисел, затем r
задает первую строку матрицы.
Если r
комплексный вектор с действительным первым элементом, затем r
задает первую строку и r'
задает первый столбец.
Если первый элемент r
является комплексным, матрица Теплица является Эрмитовой от основной диагонали, что означает для . Элементы основной диагонали установлены в r(1)
.
Создайте несимметричную матрицу Теплица с заданным столбцом и вектором-строкой. Поскольку первые элементы вектор-столбцов и векторов-строк не соответствуют, toeplitz
выдает предупреждение и использует столбец для диагонального элемента.
c = [1 2 3 4]; r = [4 5 6]; toeplitz(c,r)
Warning: First element of input column does not match first element of input row. Column wins diagonal conflict.
ans = 4×3
1 5 6
2 1 5
3 2 1
4 3 2
Создайте матрицу Теплица с комплексными векторами строки и столбца.
c = [1+3i 2-5i -1+3i]; r = [1+3i 3-1i -1-2i]; T = toeplitz(c,r)
T = 3×3 complex
1.0000 + 3.0000i 3.0000 - 1.0000i -1.0000 - 2.0000i
2.0000 - 5.0000i 1.0000 + 3.0000i 3.0000 - 1.0000i
-1.0000 + 3.0000i 2.0000 - 5.0000i 1.0000 + 3.0000i
toeplitz
ФункцияМожно создать матрицы циркулянта с помощью toeplitz
. Матрицы циркулянта используются в приложениях, таких как круговая свертка.
Создайте циркулянтную матрицу из векторного v
использование Теплица.
v = [9 1 3 2]; toeplitz([v(1) fliplr(v(2:end))], v)
ans = 4×4
9 1 3 2
2 9 1 3
3 2 9 1
1 3 2 9
Выполните круговую свертку дискретного времени при помощи toeplitz
сформировать циркулянтную матрицу для свертки.
Задайте периодический вход x
и отклик системы h
.
x = [1 8 3 2 5]; h = [3 5 2 4 1];
Сформируйте вектор-столбец c
создать циркулянтную матрицу где length(c) = length(h)
.
c = [x(1) fliplr(x(end-length(h)+2:end))]
c = 1×5
1 5 2 3 8
Сформируйте вектор-строку r
от x
.
r = x;
Сформируйте матрицу свертки xConv
использование toeplitz
. Найдите свертку с помощью h*xConv
.
xConv = toeplitz(c,r)
xConv = 5×5
1 8 3 2 5
5 1 8 3 2
2 5 1 8 3
3 2 5 1 8
8 3 2 5 1
h*xConv
ans = 1×5
52 50 73 46 64
Если у вас есть Signal Processing Toolbox™, можно использовать cconv
(Signal Processing Toolbox) функция, чтобы найти круговую свертку.
Дискретная свертка Используя Теплица
Выполните дискретную свертку при помощи toeplitz
сформировать массивы для свертки.
Задайте вход x
и отклик системы h
.
x = [1 8 3 2 5]; h = [3 5 2];
Сформируйте r
путем дополнения x
с нулями. Длина r
длина свертки x + h - 1
.
r = [x zeros(1,length(h)-1)]
r = 1×7
1 8 3 2 5 0 0
Сформируйте вектор-столбец c
. Установите первый элемент на x(1)
потому что столбец определяет диагональ. Заполните c
потому что length(c)
должен равняться length(h)
для свертки.
c = [x(1) zeros(1,length(h)-1)]
c = 1×3
1 0 0
Сформируйте матрицу свертки xConv
использование toeplitz
. Затем найдите свертку с помощью h*xConv
.
xConv = toeplitz(c,r)
xConv = 3×7
1 8 3 2 5 0 0
0 1 8 3 2 5 0
0 0 1 8 3 2 5
h*xConv
ans = 1×7
3 29 51 37 31 29 10
Проверяйте, что результатом является правильное использование conv
.
conv(x,h)
ans = 1×7
3 29 51 37 31 29 10
c
— Столбец матрицы ТеплицаСтолбец матрицы Теплица в виде скаляра или вектора. Если первые элементы c
и r
отличайтесь, toeplitz
использует элемент столбца для диагонали.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
r
— Строка матрицы ТеплицаСтрока матрицы Теплица в виде скаляра или вектора. Если первые элементы c
и r
отличайтесь, затем toeplitz
использует элемент столбца для диагонали.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
Матрица Теплица является диагонально-постоянной матрицей, что означает, что все элементы по диагонали имеют то же значение. Для матрицы Теплица A у нас есть Ai,j = ai–j , который приводит к форме
backgroundPool
или ускорьте код с Parallel Computing Toolbox™ ThreadPool
.Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.