4.1矩阵

用“八度”定义一个值矩阵很容易。矩阵的大小是自动确定的,因此没有必要对尺寸进行解释。表达式

a=[1,2;3,4]

矩阵中的结果

/\|1 2|a=|||3 4|\/

矩阵的元素可以是任意表达式,前提是在组合各个部分时,维度都是有意义的。例如,给定上述矩阵,表达式

[a,a]

生成矩阵

ans=1 2 1 2 3 4 3 4

但是表达式

[a,1]

返回错误

错误:第13行第6列附近的行数必须匹配(1!=2)

(当然,假设这个表达式是作为第13行的第一个内容输入的)。

在定义矩阵表达式的方括号内,Octavelooks查看周围的上下文,以确定是否应将空格和换行符转换为元素分隔符和行分隔符,或者意味着忽略,因此

a=[1 2 3 4]

将起作用。然而,一些可能的混乱来源仍然存在。例如,在表达式中

[ 1 - 1 ]

这个-被视为二进制运算符,结果为标量0,但在表达式中

[ 1 -1 ]

这个-被视为一元运算符,结果是向量[ 1, -1 ]。同样,表达式

[sin(pi)]

将被解析为

[sin,(pi)]

并且将导致错误,因为函数将在没有参数的情况下停止。要解决此问题,必须省略和左括号,或将表达式括在一组括号中:

[(sin(pi))]

单引号字符(,用作anspose运算符和用于分隔字符串)也可能导致混淆。鉴于a=1,表达式

[1 a']

导致将单引号字符视为anspose运算符,结果为向量[ 1, 1 ],但是表情

[1 a']

生成错误消息

解析错误:语法错误>>[1 a']^

因为不这样做会在解析有效表达式时造成麻烦

[a'foo']

为了清楚起见,最好总是使用逗号和分号来分隔矩阵元素和行。

编译Octave时,矩阵中元素的最大数量是固定的。可以使用该函数查询允许的数量sizemax请注意,其他因素,如机器上可用的内存量,可能会将矩阵的最大大小限制为较小的值。

 
: max_numel = sizemax ()

返回数组大小所允许的最大值。

如果使用64位索引编译Octave,则结果属于类int64,否则属于类int32。最大数组大小略小于相关类允许的最大值,如所返回intmax.

详见: intmax.

当您输入一个矩阵或值为amatrix的变量的名称时,Octave会通过打印具有整齐对齐的行和列的矩阵来做出响应。如果矩阵的行太大,无法放在屏幕上,Octave会拆分矩阵,并在每个部分之前显示一个标题,以指示要显示的列。您可以使用以下变量来控制输出的格式。

 
: val = output_precision ()
: old_val = output_precision (new_val)
: old_val = output_precision (new_val, "local")

查询或设置内部变量,该变量指定要为数字输出显示的最小重要数字数。

请注意,无论为设置了什么值输出_精度,则显示的精度位数对于双精度值限制为16位,对于单精度值则限制为7位。此外,对的调用format更改数字显示的函数也可以更改的设置值输出_精度.

当从具有的函数内部调用时地方的参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。

详见: format, 固定点格式.

通过使用的不同值,可以实现广泛的输出样式输出_精度。使用可以困扰合理的组合format作用详见基本输入和输出.

 
: val = split_long_rows ()
: old_val = split_long_rows (new_val)
: old_val = split_long_rows (new_val, "local")

查询或设置内部变量,该变量控制在显示到终端窗口时是否可以拆分矩阵的行。

如果行被拆分,Octave将以一系列较小的部分显示矩阵,每个部分都可以在终端宽度的限制范围内,并且每组行都有标签,这样您就可以很容易地看到当前显示的列。例如

Octave:13>rand(2,10)ans=第1列到第6列:0.75883 0.93290 0.40064 0.43818 0.94958 0.16467 0.75697 0.51942 0.40031 0.61784 0.92309 0.40201第7列到第10列:0.90174 0.11854 0.72313 0.73326 0.44672 0.94303 0.56564 0.82150

当从具有的函数内部调用时地方的参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。

详见: format.

当数值变得非常大或非常小时,Octave自动切换到科学记数法。这保证了您将看到矩阵中每个值的几个重要数字。如果您希望看到以定点格式打印的矩阵中的所有值,可以使用函数固定点格式。但不建议这样做,因为这样可以返回易于解释的输出。

 
: val = fixed_point_format ()
: old_val = fixed_point_format (new_val)
: old_val = fixed_point_format (new_val, "local")

查询或设置内部变量,该变量控制Octave是否使用缩放格式打印矩阵值。

缩放格式在输出选择的第一行打印缩放因子,以确保最大的矩阵元素可以用单个前导数字写入。例如

fixed_point_format(true)logspace(1,7,5)'ans=1.0e+07*0.00000 0.00003 0.00100 0.03162 1.00000

请注意,第一个值显示为0,而实际为1。从于存在混淆的可能性,您应该小心启用固定点格式.

当从具有的函数内部调用时地方的参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。

详见: format, 输出_精度.


版权所有 © 2024 Octave中文网

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