# MATRIX-END MATRIX

The `MATRIX`

and `END MATRIX`

commands enclose
statements that are executed by the matrix processor. Using matrix programs, you can write your own
statistical routines in the compact language of matrix algebra. Matrix programs can include
mathematical calculations, control structures, display of results, and reading and writing matrices
as character files or data files.

```
MATRIX
matrix statements
END MATRIX
```

The following matrix language statements can be used in a matrix program: ```
BREAK, CALL,
COMPUTE, DISPLAY, DO IF, ELSE, ELSE IF, END IF, END LOOP, GET, LOOP, MGET, MSAVE, PRINT, READ,
RELEASE, SAVE, WRITE
```

.

For information on which functions can be used in matrix language statements, see Matrix Functions (MATRIX-END MATRIX command).

## Example

```
MATRIX.
READ A /FILE=MATRDATA /SIZE={6,6} /FIELD=1 TO 60.
CALL EIGEN(A,EIGENVEC,EIGENVAL).
LOOP J=1 TO NROW(EIGENVAL).
+ DO IF (EIGENVAL(J) > 1.0).
+ PRINT EIGENVAL(J) / TITLE="Eigenvalue:" /SPACE=3.
+ PRINT T(EIGENVEC(:,J)) / TITLE="Eigenvector:" /SPACE=1.
+ END IF.
END LOOP.
END MATRIX.
```

**Release History**

Statistics 27.0

- The NCDF.BETA cumulative distribution function is now supported.
- Probability density functions are now supported (they were previously only supported by the COMPUTE command).
- Tail probability functions are now supported (they were previously only supported by the COMPUTE command).
- Random variable functions are now supported (they were previously only supported by the COMPUTE command).

Subscription November 2017 update / Statistics 26.0

- Long variable names (up to 64 bytes) can be used to name a matrix or vector name (such as
`COMPUTE`,`CALL`,`PRINT`,`READ`,`WRITE`,`GET`,`SAVE`,`MGET`,`MSAVE`,`DISPLAY`,`RELEASE`, and so on). - Variable names that are included in a vector or matrix object are truncated to 8 bytes. This is because the matrix/vector structure is an array of numbers, and each number can match a string only up to 8 bytes. Long names (up to 64 bytes) are supported only when explicitly specified.
- Long variable names are supported in
`GET`and`SAVE`commands when explicitly specified on the`/VARIABLES`subcommand (and when specified on the`/STRINGS`subcommand for the`SAVE`command). Variable names for GET and SAVE commands are truncated to 8 bytes when they are referenced through a vector in the`/NAMES`subcommand. - The
`GET`,`SAVE`,`MGET`, or`MSAVE`statements support both dataset references and physical file specifications. - MATRIX-END MATRIX supports statistical functions that were previously only supported by the COMPUTE command (for example IDF.CHISQ, CDF.NORMAL, NCDF.F, and so on). For more information, see Matrix Functions (MATRIX-END MATRIX command).