I need clarification on reshape and conv2 comparison
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
mathango
el 6 de Mayo de 2016
Comentada: mathango
el 6 de Mayo de 2016
In convmtx2 documentation I found the following description :
T = convmtx2(H,m,n) returns the convolution matrix T for the matrix H. If X is an m-by-n matrix, then T = convmtx2(H,m,n) returns the convolution matrix T for the matrix H. If X is an m-by-n matrix, then reshape(T*X(:),size(H)+[m n]-1) is the same as conv2(X,H).
T = convmtx2(H,[m n]) returns the convolution matrix, where the dimensions m and n are a two-element vector. is the same as conv2(X,H).
T = convmtx2(H,[m n]) returns the convolution matrix, where the dimensions m and n are a two-element vector.
I am trying an alternative for C=conv2(A,B,'same') by using reshape command. Below is my attempt that does not work,
A = rand(n,n);
B = rand(3,3);
C=reshape(T*A(:),size(B)+[n n]-1);
I know that reshape command set up is incorrect. How to fix this?
0 comentarios
Respuesta aceptada
Image Analyst
el 6 de Mayo de 2016
That is not correct. Be aware that convolution "flips" the kernel, so unless your kernel is symmetric, which it won't be if you're getting it from rand(), then the answers won't be the same.
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!