convmtx2

2D матрица свертки

Синтаксис

T = convmtx2(H,m,n)
T = convmtx2(H,[m n])

Описание

пример

T = convmtx2(H,m,n) возвращает матрицу свертки T для матричного H. Если X является m-by-n матрица, то reshape(T*X(:),size(H)+[m n]-1) совпадает с conv2(X,H).

T = convmtx2(H,[m n]) возвращает матрицу свертки, где размерности m и n являются двухэлементным вектором.

Примеры

свернуть все

Покажите, что, для матрицы свертки T для матричного H, если X является матрицей m на n, то reshape(T*X(:),size(H)+[m n]-1) совпадает с conv2(X,H)

Описание первого блока кода

H = ones(3,3)/9; % averaging filter 3-by-3
M = 5;
X = magic(M);
T = convmtx2(H,M,M);
Y1 = reshape(T*X(:), size(H)+[5 5]-1)
Y1 = 7×7

    1.8889    4.5556    4.6667    3.6667    2.6667    2.5556    1.6667
    4.4444    7.6667    8.5556    6.5556    6.7778    5.8889    3.4444
    4.8889    8.7778   11.1111   10.8889   12.8889   10.5556    5.8889
    4.1111    6.6667   11.0000   13.0000   15.0000   10.6667    4.5556
    2.7778    6.7778   13.1111   15.1111   14.8889    8.5556    3.7778
    2.3333    5.6667   10.5556   10.7778    8.7778    3.8889    1.3333
    1.2222    3.2222    6.0000    5.0000    4.0000    1.2222    1.0000

Y2 = conv2(X,H)
Y2 = 7×7

    1.8889    4.5556    4.6667    3.6667    2.6667    2.5556    1.6667
    4.4444    7.6667    8.5556    6.5556    6.7778    5.8889    3.4444
    4.8889    8.7778   11.1111   10.8889   12.8889   10.5556    5.8889
    4.1111    6.6667   11.0000   13.0000   15.0000   10.6667    4.5556
    2.7778    6.7778   13.1111   15.1111   14.8889    8.5556    3.7778
    2.3333    5.6667   10.5556   10.7778    8.7778    3.8889    1.3333
    1.2222    3.2222    6.0000    5.0000    4.0000    1.2222    1.0000

isequal(Y1,Y2) % They are the same.
ans = logical
   0

Входные параметры

свернуть все

Введите матрицу, заданную как числовой массив.

Типы данных: double

Строки в матрице свертки, заданной в виде числа.

Типы данных: double

Столбцы в матрице свертки, заданной в виде числа.

Типы данных: double

Размерности матрицы свертки, заданной как двухэлементный вектор формы [m n], где m является количеством строк и n, являются количеством столбцов.

Типы данных: double

Выходные аргументы

свернуть все

Матрица свертки, возвращенная как числовой массив. Выходная матрица T имеет класс sparse. Количество ненулевых элементов в T не больше, чем prod(size(H))*m*n.

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

|

Представлено до R2006a