convmtx2

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

Описание

пример

T = convmtx2(H,m,n) возвращает матрицу свертки T для матричного H. Если X m- 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