how to solve array dimension for matrix multiplication issue?
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Abderrahim. B
2022-8-9
编辑:Abderrahim. B
2022-8-9
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 个评论
Abderrahim. B
2022-8-9
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)
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!