There is already a function `sum()`

. As a result, if we name a variable with the same name

```
sum = 1+3;
```

and if we try to use the function while the variable still exists in the workspace

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

we will get the cryptic **error**:

```
Subscript indices must either be real positive integers or logicals.
```

`clear()`

the variable first and then use the function

```
clear sum
sum(A,1)
ans =
1.0826 1.0279
```

How can we check if a function already exists to avoid this conflict?

Use `which()`

with the `-all`

flag:

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

This output is telling us that `sum`

is first a variable and that the following methods (functions) are shadowed by it, i.e. MATLAB will first try to apply our syntax to the variable, rather than using the method.