Next: memory Up: MacAnova Help File Previous: matwrite()   Contents

# max()

Usage:
 ```max(x [,squeeze:T] [,silent:T,undefval:U]), x REAL or LOGICAL or a structure with REAL or LOGICAL components, U a REAL scalar max(x, dimensions:J [,squeeze:T] [,silent:T,undefval:U]), vector of positive integers J max(x, margins:K [,squeeze:F] [,silent:T,undefval:U]), vector of positive integers K max(x1,x2,... [,silent:T,undefval:U]), x1, x2, ... REAL or LOGICAL vectors, all the same type. ```

Keywords: descriptive statistics
```max(x) computes the maximum of the elements of a REAL or LOGICAL vector
x.

If x is LOGICAL, True is interpreted as 1.0 and False as 0.0 and hence
max(x) is 1.0 if any element of x is True, and 0.0 if all elements are
False.

If x is a m by n matrix, max(x) computes a row vector (1 by n matrix)
consisting of the maxima of the elements in each column of x.

If x is an array with dimensions n1, n2, n3, ..., y <- max(x) computes
an array with dimensions 1, n2, n3, ... such that y[1,j,k,...] =
max(x[i,j,k,...], i=1,...,n1).  This is consistent with what happens
when x is a matrix.  Note: MacAnova3.35 and earlier produced a result
with dimensions n2, n3, ... .

max(x, squeeze:T) does the same, except the first dimension of the
result (of length 1) is squeezed out unless the result is a scalar.  In
particular, if x is a matrix, max(x,squeeze:T) will be identical to
vector(max(x)), and if x is an array, max(x,squeeze:T) will be identical
to array(max(x),dim(x)[-1]).

max(NULL) is NULL.

max(a,b,c,...) is equivalent to max(vector(a,b,c,...)) if a, b, c,
... are all vectors.  They must all have the same type, REAL or LOGICAL,
or be NULL.  max(NULL,NULL,...,NULL) is NULL.

min(x, silent:T) or min(a,b,c,...,silent:T) does the same but suppresses

If all the elements of a vector x are MISSING, max(x) is MISSING.

max(x, undefval:U), where U is a REAL scalar does the same, except the
returned value is U when all the elements of x are MISSING.

max(x, dimensions:J [,squeeze:T] [,silent:T] [undefval:U]) finds the
maximum over the dimensions in J = vector(j1,j2,...,jn) where j1, ...,
jn are distinct positive integers <= ndims(x).  Without 'squeeze:T', the
result has the same number of dimensions as x, with dimensions j1, j2,
..., jn of length 1.  With 'squeeze:T', these dimensions are removed
from the result.  The order of j1, j2, ... is ignored.

It is an error if max(J) > ndims(x) or if there are duplicate elements
in J.

For example, if x is a matrix, max(x, dimensions:2) computes the row
maxima as a nrows(x) by 1 matrix and max(x, dimensions:2,squeeze:T)
computes them as a one dimensional vector.

max(x, margins:K [,squeeze:F] [,silent:T] [undefval:U]) finds the maxima
over the dimensions not in K = vector(k1, k2, ..., km), where k1, ...,
km are distinct positive integers <= ndims(x).  This computes maxima for
the margins specified in K.

Without 'squeeze:F', only the dimensions in K are retained in the
result.  Otherwise the other dimensions are retained but have length 1.
This is opposite from the default with 'dimensions:J'.

It is an error if max(K) > ndims(x) or if there are duplicate elements
in K.

If x is a structure, max(x [dimensions:J or margins:K] [,squeeze:T or F]
[,silent:T] [undefval:U]) computes a structure, each of whose components
is max() applied to that component of x.

Examples:
Cmd> x # matrix with labels
B1          B2
A1          18          15
A2          17          26
A3          18          19

Cmd> max(x) # maxima down columns
B1          B2
(1)          18          26

Cmd> max(x,dimensions:2) # maxima across rows; 3 by 1 matrix
(1)
A1          18
A2          26
A3          19

Cmd> max(x,dimensions:2,squeeze:T) # same, length 3 vector
A1          A2          A3
18          26          19

Cmd> max(x,margins:1) # same as preceding
A1          A2          A3
18          26          19