Simple array multiplication of incompatible sized arrays

17 vues (au cours des 30 derniers jours)
olivia
olivia le 5 Sep 2023
Commenté : olivia le 6 Sep 2023
I would like to multiply these two arrays of different size and I am recieving the error :
"Arrays have incompatible sizes for this operation"
which makes sense, researching this question on other forums I found you can "Pad with zeros" and I would like to do that but I don't know how.
NEDsv=NED*SV;
%SV is a 62x3 double
%NED is a 186x3 double
  1 commentaire
Clay Swackhamer
Clay Swackhamer le 5 Sep 2023
I think matrix multiplication requires that the first matrix must have the same number of columns as the number of rows in the second matrix. So can you just transpose SV like this:
NEDsv = NED * SV'

Connectez-vous pour commenter.

Réponse acceptée

dpb
dpb le 5 Sep 2023
Déplacé(e) : dpb le 5 Sep 2023
What KIND of "multiply"? "*" is matrix multiplication and
SV=rand(62,3);
NED=rand(186,3);
M=NED*SV.';
whos M
Name Size Bytes Class Attributes M 186x62 92256 double
so you can multiply them if you transpose the second...of course, that may not be what you had in mind; you didn't tell us what you expected the result to be, but if one takes the hint about augmenting with zeros, then
M=NED.*[SV;zeros(size(NED,1)-size(SV,1),size(NED,2))];
whos M
Name Size Bytes Class Attributes M 186x3 4464 double
Of course, this is <element-wise multiplication>, something much different than <matrix multiplication> and uses the "dot" operator ",*".
  3 commentaires
dpb
dpb le 5 Sep 2023
@Bruno Luong -- chuckle...blame "fat fingers" instead....
olivia
olivia le 6 Sep 2023
@dpb thank you very much. I am also not sure what to expect for the result... :D but this worked

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by