2
我偶然发现了加法运算符的意外行为。调用什么(1乘n)加(n乘1)操作?
a=[1 2 3];
b=[5; 7; 11];
a+b
主要生产
ans =
6 7 8 % a(1)+b(1) a(1)+b(2) a(1)+b(3)
8 9 10 % a(2)+b(1) a(2)+b(2) a(2)+b(3)
12 13 14 % a(3)+b(1) a(3)+b(2) a(3)+b(3)
此行为可能是文档中的Add a Vector to a Matrix例如下下降。
创建一个数组A,并向它添加一个列向量。是 处理的矢量,就好像它是相同的尺寸A的基质中,因此在向量中的每个 元素被添加到一排A.
虽然,在我的示例b
不能被视为与a
相同的尺寸。两个载体都必须重复。
当我向他人描述时,我可以称这种行为为何?Matrix Addition没有一个定义合适。 Vector addition也有不同的定义。我能想到的最好的是“笛卡尔产品中元素的总和”。
我想bsxfun是我会看看,如果我想这种行为,我不知道它存在。但是,如果你偶然发现并试图解释它,那么根本不是一个直观的地方。 :P – Cecilia
也被称为隐式扩展...这是来自Mathworks的博客文章https://blogs.mathworks.com/loren/2016/11/10/more_thoughts_about_implicit_expansion/ – beaker
糟糕,这是原创。 http://blogs.mathworks.com/loren/2016/10/24/matlab-arithmetic-expands-in-r2016b/ – beaker