#### 16.4.8.2 The `WRITE` Command ¶

    WRITE expression
          [/OUTFILE=file]
          /FIELD=first TO last [BY width]
          [/FORMAT=format]
          [/MODE={RECTANGULAR | TRIANGULAR}]
          [/HOLD].

The `WRITE` command evaluates expression and writes its value to a text file in a specified format. Write the expression to evaluate just after the command name.

The `OUTFILE` subcommand is required in the first `WRITE` command that appears within `MATRIX`. It specifies the text file to be written, either as a file name in quotes or a file handle previously declared on `FILE HANDLE` (see FILE HANDLE). Later `WRITE` commands (in syntax order) use the previous referenced file if `FILE` is omitted.

The `FIELD` and `FORMAT` subcommands specify how output lines are formed. `FIELD` is required, but `FORMAT` is optional. See The `READ` and `WRITE` Commands, for details.

By default, or with `MODE=RECTANGULAR`, the command writes an entry for every row and column. With `MODE=TRIANGULAR`, the command writes only the entries on and below the matrix’s main diagonal. Entries above the diagonal are not written. Only square matrices may be written with `MODE=TRIANGULAR`.

Ordinarily, each `WRITE` command writes complete lines to the output file. With `HOLD`, the final line written by `WRITE` will be held back for the next `WRITE` command to augment. This can be useful to write more than one matrix on a single output line.

#### Example 1: Basic Usage ¶

This matrix program:

    WRITE {1, 2; 3, 4} /OUTFILE='matrix.txt' /FIELD=1 TO 80.

writes the following to `matrix.txt`:

     1 2
     3 4

#### Example 2: Triangular Matrix ¶

This matrix program:

    WRITE MAGIC(5) /OUTFILE='matrix.txt' /FIELD=1 TO 80 BY 5 /MODE=TRIANGULAR.

writes the following to `matrix.txt`:

        17
        23    5
         4    6   13
        10   12   19   21
        11   18   25    2    9