MATLAB Answers

# Meaning of the if statement

1 view (last 30 days)
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 CommentShowHide None
Stephen Cobeldick on 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.

Sign in to comment.

### Answers (1)

David Fletcher on 19 Apr 2021
Edited: David Fletcher on 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.
##### 1 CommentShowHide None
Muhtasim Haque Nahian on 9 May 2021
Thanks for the explanation! It helped

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!