Matlab中元素乘法的优先级
Precedence of elementwise multiplication in Matlab
Matlab
ones(2,2)*2.*ones(2,2)
ans =
2 2
2 2
ones(2,2).*2*ones(2,2)
ans =
4 4
4 4
.*
和 *
的优先级相同,因此您是从左到右阅读表达式。
第一个创建一个 2 x 2
矩阵,将元素缩放 2,然后逐元素乘以(即 .*
)矩阵乘以另一个大小相同的矩阵,从而给出全 2 的结果。请注意,执行 2 * ones(2, 2)
和 2 .* ones(2, 2)
给出的结果与创建大小为全 2 的 2 x 2
矩阵的结果完全相同。这是 MATLAB 拥有的一些不错的语法糖。另请注意,颠倒操作数的顺序会得到相同的结果,因此 ones(2, 2) * 2
和 ones(2, 2) .* 2
会得到相同的结果。
第二个创建一个全1的2 x 2
矩阵,将元素乘以2然后矩阵乘(即*
)矩阵另一个矩阵,因此给你一个全 4 的结果。
逐元素乘法和矩阵乘法是完全不同的两个东西。前者确保两个矩阵的大小相同,但其中一个操作数是标量,并创建一个与任一操作数大小相同的矩阵,输出中的每个元素乘以两个矩阵之间的相应位置.具体来说,假设 C(i, j)
是位置 (i, j)
、C(i, j) = A(i, j) * B(i, j)
处的输出矩阵 C
。矩阵乘法是使用线性代数定律将两个矩阵相乘。我不会侮辱你的智慧并解释这些是什么,因为你的个人资料暗示你是一名数学家。
这并不神秘。如果你想说服自己,输入表达式的每个部分,从左到右阅读,将前面的结果链接在一起,你会发现它是正确的:
>> A = ones(2, 2)
A =
1.00 1.00
1.00 1.00
>> A = A * 2
A =
2.00 2.00
2.00 2.00
>> A = A .* ones(2, 2)
A =
2.00 2.00
2.00 2.00
>> B = ones(2, 2)
B =
1.00 1.00
1.00 1.00
>> B = B .* 2
B =
2.00 2.00
2.00 2.00
>> B = B * ones(2, 2)
B =
4.00 4.00
4.00 4.00
我也鼓励阅读有关两者之间差异的文档:https://www.mathworks.com/help/matlab/ref/times.html, https://www.mathworks.com/help/matlab/ref/mtimes.html。
Matlab
ones(2,2)*2.*ones(2,2)
ans =
2 2
2 2
ones(2,2).*2*ones(2,2)
ans =
4 4
4 4
.*
和 *
的优先级相同,因此您是从左到右阅读表达式。
第一个创建一个 2 x 2
矩阵,将元素缩放 2,然后逐元素乘以(即 .*
)矩阵乘以另一个大小相同的矩阵,从而给出全 2 的结果。请注意,执行 2 * ones(2, 2)
和 2 .* ones(2, 2)
给出的结果与创建大小为全 2 的 2 x 2
矩阵的结果完全相同。这是 MATLAB 拥有的一些不错的语法糖。另请注意,颠倒操作数的顺序会得到相同的结果,因此 ones(2, 2) * 2
和 ones(2, 2) .* 2
会得到相同的结果。
第二个创建一个全1的2 x 2
矩阵,将元素乘以2然后矩阵乘(即*
)矩阵另一个矩阵,因此给你一个全 4 的结果。
逐元素乘法和矩阵乘法是完全不同的两个东西。前者确保两个矩阵的大小相同,但其中一个操作数是标量,并创建一个与任一操作数大小相同的矩阵,输出中的每个元素乘以两个矩阵之间的相应位置.具体来说,假设 C(i, j)
是位置 (i, j)
、C(i, j) = A(i, j) * B(i, j)
处的输出矩阵 C
。矩阵乘法是使用线性代数定律将两个矩阵相乘。我不会侮辱你的智慧并解释这些是什么,因为你的个人资料暗示你是一名数学家。
这并不神秘。如果你想说服自己,输入表达式的每个部分,从左到右阅读,将前面的结果链接在一起,你会发现它是正确的:
>> A = ones(2, 2)
A =
1.00 1.00
1.00 1.00
>> A = A * 2
A =
2.00 2.00
2.00 2.00
>> A = A .* ones(2, 2)
A =
2.00 2.00
2.00 2.00
>> B = ones(2, 2)
B =
1.00 1.00
1.00 1.00
>> B = B .* 2
B =
2.00 2.00
2.00 2.00
>> B = B * ones(2, 2)
B =
4.00 4.00
4.00 4.00
我也鼓励阅读有关两者之间差异的文档:https://www.mathworks.com/help/matlab/ref/times.html, https://www.mathworks.com/help/matlab/ref/mtimes.html。