Removing one length from a matrix

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.

 Risposta accettata

C = A .* reshape(B, size(A,1), size(A,2), size(A,3), []);
This assumes element-by-element multiplication, not matrix multiplication.

4 Commenti

Amit Chakraborty
Amit Chakraborty il 16 Set 2021
Modificato: Amit Chakraborty il 16 Set 2021
@Walter Roberson, Thank you for your reply. But I am having the same error still for the following code.
"Array dimensions must match for binary array"
Code:
NN=reshape(A, size(A,1), size(A,2), size(A,3), []);
B= ones(256, 256, 31, 'single');
mul= NN.*B;
@Amit Chakraborty Please provide your code completely.
@Walter Roberson's answer is correct.
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.
Thank you . It is working Now.

Accedi per commentare.

Più risposte (0)

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by