Removing one length from a matrix

4 views (last 30 days)
I have a matrix which size is ,
A= 256x256x31;
And another Matrix (4D) ;
B=2031616x64 [ 4D format is : ( 256x256x31)x64]
I need to multiply matrix A with Matrix B . For the above scenario it will be not possible as dimension is not matching.
Can any one help so that the size of B becomes the size of A so that I can multiply them .
I tried with the squeeze but nothinh is happening there. So, little but confused.

Accepted Answer

Walter Roberson
Walter Roberson on 16 Sep 2021
C = A .* reshape(B, size(A,1), size(A,2), size(A,3), []);
This assumes element-by-element multiplication, not matrix multiplication.
  4 Comments
Walter Roberson
Walter Roberson on 16 Sep 2021
Your post said
B=2031616x64 [ 4D format is : ( 256x256x31)x64]
but your code says
B= ones(256, 256, 31, 'single');
which is only 2031616 elements not 2031616x64 elements.
Amit Chakraborty
Amit Chakraborty on 16 Sep 2021
Thank you . It is working Now.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!