フィルターのクリア

Array vs. Matrix Operations

3 ビュー (過去 30 日間)
Anne Nguyen
Anne Nguyen 2019 年 10 月 15 日
編集済み: Stephen23 2019 年 10 月 15 日
A row vector and a column vector have compatible sizes. If you add a 1-by-3 vector to a 2-by-1 vector, then each vector implicitly expands into a 2-by-3 matrix before MATLAB executes the element-wise addition.
x = [1 2 3]
x =
1 2 3
y = [10; 15]
y =
10
15
x + y
ans =
11 12 13
16 17 18
If the sizes of the two operands are incompatible, then you get an error.
A = [8 1 6; 3 5 7; 4 9 2]
A =
8 1 6
3 5 7
4 9 2
m = [2 4]
m =
2 4
A - m
Matrix dimensions must agree.
This is from the MATLAB "Array vs. Matrix Operations page". Why does the second example output an error while the first doesn't? I see that the second example says that "matrix dimensions must agree", but why did that error not occur for the first example? A further explanation of this would be great. Thank you!
  1 件のコメント
Stephen23
Stephen23 2019 年 10 月 15 日
Note that your title "Array vs. Matrix Operations" actually refers to different kinds of operators, not specifically to compatible array sizes for basic array operations:

サインインしてコメントする。

採用された回答

Stephen23
Stephen23 2019 年 10 月 15 日
編集済み: Stephen23 2019 年 10 月 15 日
What "compatible sizes" means is explained on this page:
I will not copy the entire page here, but the main points are:
  • scalar dimensions can be expanded/contracted to match the other array.
  • non-scalar dimensions must have exactly the same size.
That is all. So your first example works because (note the scalar dimensions):
  • 1x3 can be expanded to 2x3
  • 2x1 can be expanded to 2x3
But your second example fails because
  • 1x2 can be expanded to 3x2
  • 1x2 cannot be expanded/contracted to match 3x3,nor can 3x3 be expanded/contracted to match 1x2, because in the second dimension neither is scalar, nor do they have the same size.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by