不要使用现有函数名称命名变量
已经有一个功能 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 将首先尝试将我们的语法应用于变量,而不是使用该方法。