how to solve array dimension for matrix multiplication issue?
1 view (last 30 days)
Show older comments
Anak Agung Adhi Dermawan
on 9 Aug 2022
Commented: Anak Agung Adhi Dermawan
on 9 Aug 2022
Dear matlab expert, I have 2 variables which 1 has 366 x 1 and the other one has 348 x 1 matrix dimension, I want to multiply these 2 variables but I got an error because incompatible array sizes for this operation. how can I fix this?
2 Comments
Accepted Answer
Abderrahim. B
on 9 Aug 2022
Edited: Abderrahim. B
on 9 Aug 2022
Hi !
Yes, multiplication of two arrays with incompatible sizes will throw an error !
A possible solution is to pad (zero pad is the common method) the array that has smaller size.
Demo:
vec1 = randi(10, 366, 1) ;
vec2 = randi(10, 348, 1) ;
% zero padding
vec2 =[vec2 ; zeros((length(vec1) - length(vec2)), 1)] ;
size(vec1)
size(vec2)
% Multiplication
vec = vec1*transpose(vec2) ;
size(vec)
% Element wise multiplication
vec = vec1.*vec2 ;
size(vec)
Hope this helps
3 Comments
Abderrahim. B
on 9 Aug 2022
vec1 = randi(10, 366, 1) ;
vec2 = randi(10, 348, 1) ;
% zero padding
value = mean(vec2) ; % set value to whatever you want, I set it to the average of the vector.
vec2 =[vec2 ; value*ones((length(vec1) - length(vec2)), 1)] ;
% Multiplication
vec = vec1*transpose(vec2) ;
size(vec)
% Element wise multiplication
vec = vec1.*vec2 ;
size(vec)
More Answers (0)
See Also
Categories
Find more on Tables in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!