Skip to content

16.4.8.2 WRITE 命令 ​

WRITE _expression_
      [/OUTFILE=_file_]
      /FIELD=_first_ TO _last_ [BY _width_]
      [/FORMAT=_format_]
      [/MODE={RECTANGULAR _|_ TRIANGULAR}]
      [/HOLD].

WRITE 命令求值 expression,并以指定格式将其值写入文本文件。在命令名之后写上要求值的表达式。

在 MATRIX 中出现的第一个 WRITE 命令里,OUTFILE 子命令是必需的。它指定要写入的文本文件,可以是引号中的文件名,也可以是之前在 FILE HANDLE 上声明的文件句柄(参见 FILE HANDLE)。后面的 WRITE 命令(按语法顺序)如果省略 FILE,则使用之前引用的文件。

FIELD 和 FORMAT 子命令指定输出行如何构成。FIELD 是必需的,但 FORMAT 是可选的。详情参见 Matrix READ and WRITE Commands。

默认情况下,或使用 MODE=RECTANGULAR,命令为每一行和每一列写入一个条目。使用 MODE=TRIANGULAR 时,命令只写入矩阵主对角线上及以下的条目。对角线上方的条目不写入。只有方阵可以使用 MODE=TRIANGULAR 写入。

通常,每个 WRITE 命令向输出文件写入完整的行。使用 HOLD 时,WRITE 写入的最后一行会被保留,供下一个 WRITE 命令补充。这对于在同一输出行上写入多个矩阵很有用。

示例 1:基本用法 ​

这个矩阵程序:

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

向 matrix.txt 写入以下内容:

 1 2
 3 4

示例 2:三角矩阵 ​

这个矩阵程序:

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

向 matrix.txt 写入以下内容:

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

基于 GNU PSPP 2.0.1 手册与入门教程整理