我偶然发现了加法运算符的意外行为。
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也有不同的定义。我能想到的最好的是笛卡尔积中的元素总和"。
答案 0 :(得分:3)
这称为二进制单例扩展。从R2016b开始,MATLAB使用标准运算符自动完成。有关详细信息,请参阅bsxfun
。