Более низкая и верхняя матричная полоса пропускания
возвращает полосу пропускания матричного B
= bandwidth(A
,type
)A
заданный type
. Задайте type
как 'lower'
для более низкой полосы пропускания или 'upper'
для верхней полосы пропускания.
Создайте 6 6 нижнюю треугольную матрицу.
A = tril(magic(6))
A = 6×6
35 0 0 0 0 0
3 32 0 0 0 0
31 9 2 0 0 0
8 28 33 17 0 0
30 5 34 12 14 0
4 36 29 13 18 11
Найдите более низкую полосу пропускания A
путем определения type
как 'lower'
. Результат 5, поскольку каждая диагональ ниже основной диагонали имеет ненулевые элементы.
B = bandwidth(A,'lower')
B = 5
Найдите верхнюю полосу пропускания A
путем определения type
как 'upper'
. Результат 0, поскольку нет никаких ненулевых элементов выше основной диагонали.
B = bandwidth(A,'upper')
B = 0
Создайте 100 100 разреженную блочную матрицу.
B = kron(speye(25),ones(4));
Просмотрите 10 10 раздел элементов от левого верхнего из B
.
full(B(1:10,1:10))
ans = 10×10
1 1 1 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1 0 0
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
B
имеет блоки 4 на 4 из единиц, сосредоточенных на основной диагонали.
Найдите и более низкие и верхние полосы пропускания B
путем определения двух выходных аргументов.
[lower,upper] = bandwidth(B)
lower = 3
upper = 3
A
— Введите матрицуВведите матрицу в виде 2D числовой матрицы. A
может быть или полным или разреженным.
Типы данных: single
| double
Поддержка комплексного числа: Да
type
— Тип полосы пропускания'lower'
| 'upper'
Тип полосы пропускания в виде 'lower'
или 'upper'
.
Задайте 'lower'
для более низкой полосы пропускания (ниже основной диагонали).
Задайте 'upper'
для верхней полосы пропускания (выше основной диагонали).
B
— Более низкая или верхняя полоса пропусканияБолее низкая или верхняя полоса пропускания, возвращенная как неотрицательный целочисленный скаляр.
Если type
'lower'
, затем 0
≤ B
≤ size(A,1)-1
.
Если type
'upper'
, затем 0
≤ B
≤ size(A,2)-1
.
lower
— Более низкая полоса пропусканияБолее низкая полоса пропускания, возвращенная как неотрицательный целочисленный скаляр. lower
находится в области значений 0
≤ lower
≤ size(A,1)-1
.
upper
— Верхняя полоса пропусканияВерхняя полоса пропускания, возвращенная как неотрицательный целочисленный скаляр. upper
находится в области значений 0
≤ upper
≤ size(A,2)-1
.
Верхние и более низкие полосы пропускания матрицы измеряются путем нахождения последней диагонали (выше или ниже основной диагонали, соответственно), который содержит ненулевые значения.
Таким образом, для матричного A с элементами A ij:
Верхняя полоса пропускания B 1 является самым маленьким номером, таким образом что каждый раз, когда .
Более низкая полоса пропускания B 2 является самым маленьким номером, таким образом что каждый раз, когда .
Обратите внимание на то, что это измерение не запрещает промежуточные диагонали в полосе от того, чтобы быть всем нулем, но вместо этого фокусируется на местоположении последнего диагонального, содержащего ненули. Условно, верхние и более низкие полосы пропускания пустой матрицы равны нулю.
Используйте isbanded
функционируйте, чтобы протестировать, если матрица в определенной более низкой и верхней полосе пропускания.
Указания и ограничения по применению:
Генерация кода не поддерживает входные параметры разреженной матрицы для этой функции.
backgroundPool
или ускорьте код с Parallel Computing Toolbox™ ThreadPool
.Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.