禁用Matlab R2016b隐式扩展

Sem*_*aki 7 matlab vector matrix expansion

Matlab R2016b带有一个怪物会杀死我们所有人:操作员隐式扩展.

基本上如果你有一个矩阵A和一个向量B,你现在可以做A + B(没有bsxfunrepmat).听起来不错吧?

但是,如果您提供列向量和行向量,它也可以工作!!

例:

a = 1:4      % row vector
b = (1:4)'   % column vector

% before R2016b:    
a + b
   Matrix dimensions must agree.

% after R2016b:
a + b 
    ans =

    2     3     4     5
    3     4     5     6
    4     5     6     7
    5     6     7     8
Run Code Online (Sandbox Code Playgroud)

扩展两个向量并给出一个矩阵作为结果!! 这非常糟糕,因为您可能在没有注意到的情况下进行了完全不需要的操作.

所以我的问题是:是否有一种方法可以禁用隐式扩展并回复Matrix dimensions must agree错误?