7变量

变量使您可以为值命名,并在以后引用它们。您已经在许多示例中看到了变量。变量的名称必须是字母、数字和下划线的序列,但不能以数字开头。Octave没有对变量名称的长度进行限制,但对于名称超过30个字符的变量来说,这几乎没有什么用处。以下是所有有效的变量名

xx15__foo_bar_baz__fucnrdhsucngtagdjb

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

大小写在变量名称中很重要。符号aA.是不同的变量。

变量名本身就是一个有效的表达式。它表示变量的当前值。变量被赋予新值赋值运算符增量运算符详见赋值表达式.

有一个自动创建的变量具有特殊意义。这个ans变量始终包含上一次计算的结果,其中输出未赋值给任何变量。代码a=cos(pi)将值-1赋值给变量a,但不会更改的值ans。但是,代码cos(pi)将设置的值ans至-1。

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

 
自动变量:ans

未显式赋值给avariable的最近计算的结果。

例如,在表达式之后

3^2 + 4^2

的值,返回的值为ans是25。

 
:tf= isvarname (name)

如果返回truename是一个有效的变量名。

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

详见: iskeyword,存在,.

 
:变量名= matlab.lang.makeValidName (str)
:变量名= matlab.lang.makeValidName (…,“替换样式”,rs)
:变量名= matlab.lang.makeValidName (…,前缀,pfx)
:[变量名,ismodified] = matlab.lang.makeValidName (…)

创建有效的变量名变量名从…起str.

输入str必须是字符串或字符串的元胞数组。输出变量名将是相同的类型。

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

这个“替换样式”参数指定如何处理无效字符。可接受的值为

强调默认

用下划线替换所有无效字符("_").

删去

删除任何无效字符。

“十六进制”

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

空白字符总是被删除先前的的应用程序“替换样式”.空格后面的小写字母将改为大写。

这个前缀参数指定字符串pfx如果输入以数字开头,则添加为aprefix。pfx必须是一个有效的可变名称本身。默认前缀为“x”.

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

详见: iskeyword,isvarname,matlab.lang.makeUniqueStrings.

 
:uniqstr= matlab.lang.makeUniqueStrings (str)
:uniqstr= matlab.lang.makeUniqueStrings (str,前-)
:uniqstr= matlab.lang.makeUniqueStrings (str,前-,最大长度)
:[uniqstr,ismodified] = matlab.lang.makeUniqueStrings (…)

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

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

该算法通过添加下划线使两个字符串唯一("_"以及对第二字符串进行数字计数。

如果前-是字符串或字符串的元胞数组,uniqstr将包含在其自身之间和在以下方面唯一的元素前-.

如果前-是的索引数组或逻辑数组str则它选择的子集str这些都是独一无二的。未选择的元素不会被修改。

可选输入最大长度指定中任意字符串的最大长度uniqstr。如果输入字符串不能在没有超过的情况下唯一最大长度则发出错误。

可选输出ismodified是一个逻辑数组,指示中的每个元素str经过修改使其独一无二。

详见: 唯一的,matlab.lang.makeValidName.

 
:n= 名称长度最大值 ()

返回MATLAB兼容的最大可变名称长度。

Octave能够存储多达2^{31} - 1长度。然而,对于MATLAB兼容性所有变量、函数和结构体字段名称都应短于返回的长度名称长度最大值。特别是,存储到的变量MATLAB文件格式(小地毯)将把他们的名字截断到这个长度。


版权所有 © 2024 Octave中文网

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