Octave使用的字符串表示是一个字符数组,因此在内部是字符串dddddddddd
实际上是长度为10的行向量,在所有位置都包含值100(100是的ASCII代码d
). 这有助于特征矩阵的明显推广。使用字符矩阵,可以在一个变量中表示相同长度字符串的集合。Octave中使用的约定是,字符矩阵中的每一行都是一个单独的字符串,但让每一列表示一个字符串也是可能的。
创建字符矩阵的最简单方法是将多个字符串放在一个矩阵中。
collection=[“String#1”;“String#2”];
这将创建一个2乘9的字符矩阵。
函数ischar
可用于测试对象是否为字符矩阵。
tf =
ischar (x)
¶如果返回truex是一个字符数组。
详见: isfloat, isiteger, 不合逻辑的, 非数字字符, isstring, iscellstr, isa.
tf =
isstring (s)
¶如果返回trues是一个字符串数组。
字符串数组是一种数据类型,它在数组中的每个元素处存储字符串(字符的行向量)。它不同于字符数组,字符数组是N维数组,其中每个元素是单个1x1字符。它也不同于字符串的元胞数组,后者在每个元素处存储字符串,但使用数组索引{}访问元素,而不是使用普通数组索引的字符串数组()’.
编程注意:Octave还没有实现字符串数组,所以这个函数总是返回false。
详见: ischar, iscellstr, isfloat, isiteger, 不合逻辑的, 非数字字符, isa.
要测试对象是否是字符串(即字符的1xN行向量,而不是字符矩阵),可以使用ischar
与结合使用的函数isrow
函数如下例所示:
ischar(集合)⇒ 1沙尔(收藏)&&isrow(收藏)⇒ 0ischar(“my string”)&&isrow(“my字符串”)⇒ 1.
一个相关的问题是,当从不同长度的字符串创建字符矩阵时会发生什么。答案是Octave将空白字符放在比最长字符串短的字符串的末尾。使用字符串_填充_查尔
作用
val =
string_fill_char ()
¶old_val =
string_fill_char (new_val)
¶old_val =
string_fill_char (new_val, "local")
¶查询或设置用于将字符矩阵的所有行填充为相同长度的内部变量。
该值必须是单个字符,默认值为
(单个空间)。例如
string_fill_char(“X”);[“这些”;“是”;“字符串”]⇒ “这些XX”“是XXXX”“字符串
当从具有的函数内部调用时地方的
参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。
在这种情况下,控制文本对齐的另一个有用函数是strjust
作用
str =
strjust (s)
¶str =
strjust (s, pos)
¶返回文本,s,根据销售时点情报系统,这可能左边
, 居中
或正确的
.
如果销售时点情报系统被省略,默认为正确的
.
空字符将替换为空格。所有其他字符数据都被创建为非空白。
用例
strjust([“a”;“ab”;“abc”;“abcd”])⇒ “a”“ab”“abc”“abcd
这显示了字符矩阵的一个问题。根本不可能呈现不同长度的字符串。解决方案是使用字符串的元胞数组,如中所述字符串的元胞数组.
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号