Meaning of the if statement
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
Stephen23
2021 年 4 月 19 日
"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.
回答 (1 件)
David Fletcher
2021 年 4 月 19 日
編集済み: David Fletcher
2021 年 4 月 19 日
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.
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!