# Aggregate Operations¶

Operations in this section should accept symbolic inputs on any type supported by the method.

## all¶

**Syntax**

```
all(x)
all(x,dim)
```

**Description**

Returns an array of logical values indicating whether elements in
array, `x`

, along a particular dimension, `dim`

, are all nonzero.

For example, `all(x,2)`

returns a column vector of logical values
indicating whether the elements of each row of `x`

are all
nonzero. If `dim`

is not specified, `all`

will test the elements
along the first array dimension of `x`

whose size does not equal 1.

## any¶

**Syntax**

```
any(x)
any(x,dim)
```

**Description**

Returns an array of logical values indicating whether there is at
least one element in array, `x`

, along a particular dimension,
`dim`

, that is nonzero.

For example, `any(x,2)`

returns a column vector of logical values
indicating whether there is at least one nonzero element in each row
of `x`

. If `dim`

is not specified, `any`

will test the elements
along the first array dimension of `x`

whose size does not equal 1.

## arrayfun¶

**Syntax**

```
[r1,…,rm] = arrayfun(fHandle, a1,…,an)
[r1,…,rm] = arrayfun(fHandle, a1,…,an,'UniformOutput',value)
```

**Description**

This operation applies a function, specified by the function handle
`fHandle`

, to each element of an array. The elements from arrays
`a1,…,an`

are passed as input to `fHandle`

and `n`

is the
number of parameters that the function expects. Returns arrays
`r1,…,rm`

where `m`

is the number of outputs from `fHandle`

.

- The input,
`a1,..,an`

, must be arrays of the same size. - By default,
`arrayfun`

assumes that output from the`fHandle`

function has the same type and size. This is equivalent to invoking`arrayfun(fHandle, a1,..,an,'UniformOutput',true)`

. When the`fHandle`

function returns output of differing sizes or types, indicate this by adding the parameters`'UniformOutput'`

and`false`

for`value`

.

## cellfun¶

**Syntax**

```
[r1,…,rm] = cellfun(fHandle, c1,…,cn)
[r1,…,rm] = cellfun(fHandle, c1,…,cn,'UniformOutput',value)
```

**Description**

This operation applies a function, specified by the function handle
`fHandle`

, to each cell in a cell array. The elements from cell
arrays `c1,…,cn`

are passed as input to `fHandle`

and `n`

is
the number of parameters that the function expects. Returns arrays
`r1,…,rm`

where `m`

is the number of outputs from `fHandle`

.

- The input,
`c1,..,cn`

, must be cell arrays of the same size. - By default,
`cellfun`

assumes that output from the`fHandle`

function has the same type and size. This is equivalent to invoking`cellfun(fHandle, c1,..,cn,'UniformOutput',true)`

. When the`fHandle`

function returns output of differing sizes or types, indicate this by adding the parameters`'UniformOutput'`

and`false`

for`value`

.

## dot¶

**Syntax**

```
dot(x,y)
```

**Description**

Perform the scalar dot product of vectors, `x`

and `y`

. The length
of `x`

and `y`

must agree. If `n`

is the length of the input
vectors, then `dot(x,y)=x1*y1+x2*y2+…+xn*yn`

.

## max¶

**Syntax**

```
m = max(x)
m = max(x,y)
m = max(x,[],dim)
[m, i] = max(x)
[m, i] = max(x,[],dim)
```

**Description**

There are multiple ways in which this function can be invoked. In all
cases, `max`

identifies the largest elements of one or two arrays.

- When called with,
`m = max(x)`

, and`x`

is a vector, then`max`

returns the largest element in`x`

.`x`

is multidimensional array, this returns the largest element along the first dimension of`x`

whose size does not equal 1. For example, if`x`

is a matrix, then`m`

is a row vector containing the maximum value in each column of`x`

.

- If invoked with
`m = max(x,y)`

,`max`

returns the largest values in operand`x`

and`y`

elementwise. If both`x`

and`y`

are arrays, their dimensions must agree. If either input is a scalar, it gets expanded into an appropriately sized array before finding the maximum. - When called with,
`m=max(x,[],dim)`

, then`max`

returns the largest elements along the`dim`

dimension of`x`

. - In addition to identifying the largest values of an input array,
when called with two output arguments,
`[m, i] = max(…)`

, this function records the indices of the maximum values of`x`

and returns them in output vector`i`

. If the maximum occurs more than once, the index of the first occurance is returned.

## min¶

**Syntax**

```
m = min(x)
m = min(x,y)
m = min(x,[],dim)
[m, i] = min(x)
[m, i] = min(x,[],dim)
```

**Description**

There are multiple ways in which this function can be invoked. In all
cases, `min`

identifies the smallest elements of one or two arrays.

- When called with,
`m = min(x)`

, and`x`

is a vector, then`min`

returns the smallest element in`x`

.`x`

is multidimensional array, this returns the smallest element along the first dimension of`x`

whose size does not equal 1. For example, if`x`

is a matrix, then`m`

is a row vector containing the minimum value in each column of`x`

.

- If invoked with
`m = min(x,y)`

,`min`

returns the smallest values in operand`x`

and`y`

elementwise. If both`x`

and`y`

are arrays, their dimensions must agree. If either input is a scalar, it gets expanded into an appropriately sized array before finding the minimum. - When called with,
`m=min(x,[],dim)`

, then`min`

returns the smallest elements along the`dim`

dimension of`x`

. - In addition to identifying the smallest values of an input array,
when called with two output arguments,
`[m, i] = min(…)`

, this function records the indices of the minimum values of`x`

and returns them in output vector`i`

. If the minimum occurs more than once, the index of the first occurance is returned.

## sum¶

**Syntax**

```
sum(x)
sum(x,dim)
```

**Description**

Adds elements in array `x`

along a particular dimension, `dim`

.
If `dim`

is not specified, this computes the sum along the first
array dimension whose size does not equal 1. For example, `sum(x,1)`

returns a row vector containing the sum of elements in each of the
columns of `x`

.