I need clarification on reshape and conv2 comparison
조회 수: 2 (최근 30일)
이전 댓글 표시
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
채택된 답변
Image Analyst
2016년 5월 6일
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!