7 变量

变量使您可以为值命名,并在之后引用它们。您已经在许多示例中见过变量。变量名必须是字母、数字和下划线的序列,但不能以数字开头。Octave 没有对变量名长度施加限制,但变量名超过大约 30 个字符通常没有什么用处。以下是所有有效的变量名:

x
x15
__foo_bar_baz__
fucnrdthsucngtagdjb

然而,像 __foo_bar_baz__ 这样以两个下划线开头和结尾的名称,被理解为保留给 Octave 内部使用。您不应在编写的代码中使用它们,除非是访问 Octave 已文档化的内部变量和内置符号常量。

变量名区分大小写。符号 aA 是不同的变量。

变量名本身就是一个有效的表达式,它代表变量的当前值。变量通过赋值运算符递增运算符被赋予新值。请参阅 赋值表达式

有一个自动创建的变量具有特殊含义。ans 变量始终包含上一次计算的结果,前提是该输出没有被赋给任何变量。代码 a = cos (pi) 会将值 -1 赋给变量 a,但不会改变 ans 的值。然而,代码 cos (pi) 会将 ans 的值设置为 -1。

Octave 中的变量没有固定类型,因此可以先在变量中存储一个数值,然后在同一程序中使用相同的名称来保存字符串值。变量在被赋予值之前不能使用,否则会导致错误。

 
自动变量:ans

最近一次计算但未显式赋值给任何变量的结果。

例如,计算表达式

3^2 + 4^2

之后,ans 返回的值为 25。

 
tf = isvarname (name)

如果 name 是有效的变量名,则返回 true。

有效的变量名由字母、数字和下划线("_")组成,且第一个字符不能是数字。

另请参阅: iskeywordexistwho

 
varname = matlab.lang.makeValidName (str)
varname = matlab.lang.makeValidName (…, "ReplacementStyle", rs)
varname = matlab.lang.makeValidName (…, "Prefix", pfx)
[varname, ismodified] = matlab.lang.makeValidName (…)

str 创建有效的变量名 varname

输入 str 必须是字符串或字符串元胞数组。输出 varname 的类型与输入相同。

有效的变量名是不以数字开头的字母、数字和下划线序列。

"ReplacementStyle" 选项指定如何处理无效字符。可接受的值为:

"underscore"(默认值)

将所有无效字符替换为下划线("_")。

"delete"

删除所有无效字符。

"hex"

将所有无效字符替换为其十六进制表示形式。

空白字符总是在应用 "ReplacementStyle" 之前被移除。空白字符后的小写字母将被转换为大写。

"Prefix" 选项指定在输入以数字开头时作为前缀添加的字符串 pfxpfx 本身必须是一个有效的变量名。默认前缀为 "x"

可选输出 ismodified 是一个逻辑数组,指示 str 中对应的元素是否为有效名称。

另请参阅: iskeywordisvarnamematlab.lang.makeUniqueStrings

 
uniqstr = matlab.lang.makeUniqueStrings (str)
uniqstr = matlab.lang.makeUniqueStrings (str, ex)
uniqstr = matlab.lang.makeUniqueStrings (str, ex, maxlength)
[uniqstr, ismodified] = matlab.lang.makeUniqueStrings (…)

从字符串列表构造唯一字符串列表。

输入 str 必须是字符串或字符串元胞数组。输出 uniqstr 的类型与输入相同。

该算法通过向第二个字符串追加下划线("_")和数字计数来使两个字符串唯一。

如果 ex 是字符串或字符串元胞数组,则 uniqstr 中的元素将在彼此之间以及与 ex 之间保持唯一。

如果 exstr 的索引数组或逻辑数组,则它选择 str 的子集进行唯一化处理。未选择的元素不会被修改。

可选输入 maxlength 指定 uniqstr 中任意字符串的最大长度。如果输入字符串在不超过 maxlength 的情况下无法变得唯一,则会报错。

可选输出 ismodified 是一个逻辑数组,指示 str 中的每个元素是否被修改以使其唯一。

另请参阅: uniquematlab.lang.makeValidName

 
n = namelengthmax ()

返回与 MATLAB 兼容的最大变量名长度。

Octave 能够存储长度高达 2^{31} - 1 的字符串。然而,为了与 MATLAB 兼容,所有变量名、函数名和结构体字段名都应短于 namelengthmax 返回的长度。特别地,保存到 MATLAB 文件格式(*.mat)的变量,其名称将被截断到此长度。


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

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