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.

This modified text is an extract of the original Stack Overflow Documentation created by following contributors and released under CC BY-SA 3.0

This website is not affiliated with Stack Overflow