MATLAB不要使用现有的函数名称来命名变量

示例

已经有一个功能sum()。结果,如果我们用相同的名称命名变量

sum = 1+3;

如果我们尝试在变量仍存在于工作空间中时使用该函数

A = rand(2);
sum(A,1)

我们将得到神秘的错误

Subscript indices must either be real positive integers or logicals.

clear() 首先使用变量,然后使用函数

clear sum

sum(A,1)
ans =
       1.0826       1.0279


我们如何检查功能是否已经存在以避免这种冲突?

which()与-all标志一起使用:

which sum -all
sum is a variable.
built-in (C:\Program Files\MATLAB\R2016a\toolbox\matlab\datafun\@double\sum)   % Shadowed double method
...

此输出告诉我们sum首先是一个变量,并且以下方法(函数)被其遮蔽,即MATLAB将首先尝试将我们的语法应用于该变量,而不是使用该方法。