how to solve array dimension for matrix multiplication issue?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Anak Agung Adhi Dermawan
am 9 Aug. 2022
Kommentiert: Anak Agung Adhi Dermawan
am 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 Kommentare
Akzeptierte Antwort
Abderrahim. B
am 9 Aug. 2022
Bearbeitet: Abderrahim. B
am 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 Kommentare
Abderrahim. B
am 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)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Tables finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!