Meaning of the if statement
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
function z = in_prod(x,y)
if size(x,2)==size(y,1)
z=x*y
else
z = "The inner dimensions are " + size(x,2) + " and " + size(y,1) + ". Matrix multiplication is not possible";
end
- Can anyone explain me the meaning of this if statement please?
- More specifically, why size(x,2) and size(y,1)? Why not size(x,any other value)?
TIA!
1 Commento
Stephen23
il 19 Apr 2021
"More specifically, why size(x,2) and size(y,1)?"
Because matrix multiplication is only defined when those dimensions are equal:
"Why not size(x,any other value)?"
Because matrix multiplication is only defined for 2D matrices.
Risposte (1)
David Fletcher
il 19 Apr 2021
Modificato: David Fletcher
il 19 Apr 2021
The if statement is checking that the number of columns in x (the number two in the argument of size is specifying that the function returns the number of columns) matches the number of rows in y (the number one in the argument of size is specifying that the function returns the number of rows). This ensures that matrix multiplication can be applied to x and y. If the inner dimensions do not match, the matrices cannot be multiplied.
Vedere anche
Categorie
Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!