14.1.1 终端输出

由于 Octave 通常在表达式求值后立即打印其值,因此所有 I/O 函数中最简单的就是一个简单的表达式。例如,以下表达式将显示 pi 的值:

pi
     -| ans =  3.1416

只要可以接受将变量名(或 ans)与值一起打印,这种方式就很有效。要打印变量的值而不打印其名称,请使用函数 disp

format 命令对 Octave 通过 disp 以及正常的回显机制打印值的方式提供了一定程度的控制。

 
disp (x)
str = disp (x)

显示 x 的值。

例如:

disp ("The value of pi is:"), disp (pi)

     -| the value of pi is:
     -| 3.1416

请注意,disp 的输出始终以换行符结尾。

如果请求了输出值,disp 将不打印任何内容,而是以字符串形式返回格式化后的输出。

另请参阅:fdisp.

 
str = list_in_columns (arg, width, prefix)

返回一个字符串,其中包含 arg 的元素按列排列,整体最大宽度为 width,并带有可选的前缀 prefix

参数 arg 必须是字符串的元胞数组或字符数组。

如果 width 未指定,或为空矩阵,或小于等于零,则使用终端屏幕的宽度。换行符用于分隔输出字符串中的各行。例如:

list_in_columns ({"abc", "def", "ghijkl", "mnop", "qrs", "tuv"}, 20)
     ⇒  abc     mnop
        def     qrs
        ghijkl  tuv

whos ans
     ⇒ 
     Variables in the current scope:

       Attr Name        Size                     Bytes  Class
       ==== ====        ====                     =====  =====
            ans         1x37                        37  char

     Total is 37 elements using 37 bytes

另请参阅:terminal_size.

 
[rows, cols] = terminal_size ()
terminal_size ([rows, cols])

查询或设置终端窗口的大小。如果不带参数调用,则返回一个包含两个元素的行向量,表示终端窗口当前的大小(以字符计,分别为行数和列数)。如果使用一个包含两个整数值的向量调用,则设置终端大小并返回之前的设置。使用 readline 进行命令行编辑时,通常不需要手动设置大小。

另请参阅:list_in_columns.

 
format
format options
format (options)
[format, formatspacing, uppercase] = format

重置或指定 disp 和 Octave 正常回显机制所产生输出的格式。

此命令仅影响数字的显示方式,而不影响其存储或计算方式。要从默认的双精度类型更改内部表示,请使用转换函数之一,如 singleuint8int64 等。任何改变显示有效数字位数的 format 选项也会反映在 output_precision 函数中。

默认情况下,Octave 以人类可读的形式显示 5 位有效数字(选项 shortlowercaseloose 矩阵格式)。如果 format 不带任何选项调用,或指定了 default 选项,则恢复为此默认格式。

浮点数的有效格式选项如下表所示。

default

恢复上述的默认格式状态。

short

定点格式,显示 5 位有效数字(默认值)。

long

定点格式,显示 16 位有效数字。

short 格式一样,如果 Octave 无法使用当前格式正确显示矩阵,它将切换到指数 e 格式。

shorte
longe

指数格式。要表示的数字被拆分为尾数和指数(10 的幂)。短格式中尾数有 5 位有效数字。长格式中,双精度值显示 16 位有效数字,单精度值显示 8 位。例如,在 shorte 格式下,pi 显示为 3.1416e+00。可选地,结尾的 e 可以拆分为第二个参数。

shortg
longg

根据数字的大小,在定点格式和指数格式之间自动选择最优方式。例如,在 shortg 格式下,pi .^ [2; 4; 8; 16; 32] 显示为:

ans =

      9.8696
      97.409
      9488.5
  9.0032e+07
  8.1058e+15

可选地,结尾的 g 可以拆分为第二个参数。

shorteng
longeng

shortelonge 相同,但使用工程格式显示值,其中指数可被 3 整除。例如,在 shorteng 格式下,10 * pi 显示为 31.416e+00。可选地,结尾的 eng 可以拆分为第二个参数。

free
none

以自由格式打印输出,不尝试在 decimal point 上对齐矩阵的列。这是一种原始格式,相当于 C++ 代码 std::cout << variable。通常,结果会显示 6 位有效数字,并抑制不必要的精度(例如整数的尾随零)。复数格式化为数值对,形如 (0.60419, 0.60709),而不是 0.60419 + 0.60709i

以下格式影响所有数值输出(浮点数和整数类型)。

"+"
"+" "chars"
plus
plus chars

对于大于零的矩阵元素打印 + 符号,对于小于零的元素打印 - 符号,对于零元素打印空格。此格式对于检查大型矩阵的稀疏结构非常有用。对于非常大的矩阵,绘制稀疏模式的函数 spy 会更清晰。

可选参数 chars 指定三个字符的列表,分别用于打印大于零、小于零和等于零的值。例如,使用格式 "+" "+-.",矩阵 [1, 0, -1; -1, 0, 1] 显示为:

ans =

+.-
-.+
bank

以适合货币的格式打印变量(定点格式,保留小数点后两位)。仅显示变量的实部,因为虚部对货币而言没有意义。

bit

打印数字在内存中的位表示,始终以最高有效位在前。例如,pi 打印如下:

0 10000000000 1001001000011111101101010100010001000010110100011000

其中为清晰起见添加了空格,依次显示符号位、11 位指数和 52 位尾数。它们共同将 pi 表示为标准形式的 IEEE 754 双精度浮点数。单精度浮点数类似。

native-bit

打印数字在内存中存储时的位表示。对于大端机器,这与上面看到的 format bit 布局相同。对于小端机器,它将按相反顺序打印字节,但字节内的位仍以最高有效位在左侧的方式呈现。

例如,在 x86-64 上,pi 在此格式下的值为:

00011000 00101101 01000100 01010100 11111011 00100001 00001001 01000000

此处为清晰起见添加了空格。与之前 format bit 的位字符串比较,可以看到按字节分组及其排序方式。

hex

与上面的 format bit 相同,只是为简洁起见,每四位一组转换为十六进制数字。因此 pi 表示为:

400921fb54442d18
native-hex

与上面的 format native-bit 相同,只是为简洁起见,每四位一组转换为十六进制数字。因此 pi 在 x86-64 上表示为:

182d4454fb210940
rat

打印有理逼近值,即将值近似为小整数的比值。例如,使用 rat 格式时,pi 显示为 355/113

以下两个选项影响科学记数法和十六进制记数法的显示。

lowercase (default)

在科学记数法中使用小写 e 作为指数字符,并使用小写 a-f 表示 10-15 的十六进制数字。

uppercase

在科学记数法中使用大写 E 作为指数字符,并使用大写 A-F 表示 10-15 的十六进制数字。

以下两个选项影响所有矩阵的显示。

compact

删除列号标签周围以及矩阵之间的空行,从而产生更紧凑的输出,每页包含更多数据。

loose (default)

在列号标签的上方和下方以及矩阵之间插入空行,以产生更易读的输出,每页数据更少。

如果使用多个互斥选项调用 format,则使用最右侧的选项,但 default 除外,它将覆盖所有其他选项。如果发生错误,格式将保持不变。

如果使用一到三个输出参数且无输入参数调用,则返回当前格式、格式间距和大写偏好。同时指定输出和输入参数将产生错误。

另请参阅:fixed_point_formatoutput_precisionsplit_long_rowsprint_empty_dimensionsrats.


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2