不要使用現有函式名稱命名變數

已經有一個功能 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 將首先嚐試將我們的語法應用於變數,而不是使用該方法。