变量使您可以为值命名,并在之后引用它们。您已经在许多示例中见过变量。变量名必须是字母、数字和下划线的序列,但不能以数字开头。Octave 没有对变量名长度施加限制,但变量名超过大约 30 个字符通常没有什么用处。以下是所有有效的变量名:
x x15 __foo_bar_baz__ fucnrdthsucngtagdjb
然而,像 __foo_bar_baz__ 这样以两个下划线开头和结尾的名称,被理解为保留给 Octave 内部使用。您不应在编写的代码中使用它们,除非是访问 Octave 已文档化的内部变量和内置符号常量。
变量名区分大小写。符号 a 和 A 是不同的变量。
变量名本身就是一个有效的表达式,它代表变量的当前值。变量通过赋值运算符和递增运算符被赋予新值。请参阅 赋值表达式。
有一个自动创建的变量具有特殊含义。ans 变量始终包含上一次计算的结果,前提是该输出没有被赋给任何变量。代码 a = cos (pi) 会将值 -1 赋给变量 a,但不会改变 ans 的值。然而,代码 cos (pi) 会将 ans 的值设置为 -1。
Octave 中的变量没有固定类型,因此可以先在变量中存储一个数值,然后在同一程序中使用相同的名称来保存字符串值。变量在被赋予值之前不能使用,否则会导致错误。
最近一次计算但未显式赋值给任何变量的结果。
例如,计算表达式
3^2 + 4^2
之后,ans 返回的值为 25。
tf = isvarname (name) ¶如果 name 是有效的变量名,则返回 true。
有效的变量名由字母、数字和下划线("_")组成,且第一个字符不能是数字。
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" 选项指定在输入以数字开头时作为前缀添加的字符串 pfx。pfx 本身必须是一个有效的变量名。默认前缀为 "x"。
可选输出 ismodified 是一个逻辑数组,指示 str 中对应的元素是否为有效名称。
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 之间保持唯一。
如果 ex 是 str 的索引数组或逻辑数组,则它选择 str 的子集进行唯一化处理。未选择的元素不会被修改。
可选输入 maxlength 指定 uniqstr 中任意字符串的最大长度。如果输入字符串在不超过 maxlength 的情况下无法变得唯一,则会报错。
可选输出 ismodified 是一个逻辑数组,指示 str 中的每个元素是否被修改以使其唯一。
另请参阅: unique、matlab.lang.makeValidName。
n = namelengthmax () ¶返回与 MATLAB 兼容的最大变量名长度。
Octave 能够存储长度高达 2^{31} - 1 的字符串。然而,为了与 MATLAB 兼容,所有变量名、函数名和结构体字段名都应短于 namelengthmax 返回的长度。特别地,保存到 MATLAB 文件格式(*.mat)的变量,其名称将被截断到此长度。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2