MATLAB®介绍了字符串
R2016b中的数据类型。从R2018b开始,您可以在MathWorks中使用字符串数组来处理文本®下载188bet金宝搏产品。字符串数组存储文本片段,并提供一组将文本作为数据处理的函数。可以像处理任何其他类型的数组一样,对字符串数组进行索引、重塑和连接。有关更多信息,请参见创建字符串数组.
在大多数方面,字符串数组的行为类似于字符向量和字符向量的单元格数组。然而,字符串数组和字符数组之间有一些关键的区别,这可能会导致您意想不到的结果。对于每一种差异,都有一种推荐的使用字符串的方法来获得预期的结果。
当您使用函数时,例如cd
,dir
,拷贝文件
,或负载
命令形式的函数,避免使用双引号。在命令形式中,用双引号括起来的参数可能导致错误。要将参数指定为字符串,请使用函数形式。
在命令语法中,您使用空格而不是逗号分隔输入,并且不使用括号括住输入参数。例如,你可以使用cd
函数与命令语法更改文件夹。
cdC: \ Temp
文本C: \ Temp
是字符向量。在命令形式中,所有参数都是字符向量。如果有包含空格的参数(如文件夹名),则通过将其括在单引号中将其指定为一个输入参数。
cd“C: \程序文件”
但如果你用双引号指定参数,那么cd
抛出一个错误。
cd“C: \程序文件”
使用cd时出错输入参数太多。
根据所使用的函数和所指定的参数,错误消息可能有所不同。例如,如果你使用负载
函数使用命令语法并使用双引号指定参数,然后负载
抛出一个不同的错误。
负载“myVariables.mat”
错误使用加载无法读取文件'"myVariables。垫”:无效的论点。
在命令形式中,双引号被视为文字文本的一部分,而不是字符串构造操作符。如果你写的是cd C: \“程序文件”
在函数形式中,它看起来像调用cd
有两个参数。
cd (““C: \计划”,“文件””)
当将参数指定为字符串时,使用函数语法。所有支持命令语法的函数也支持函数语法。金宝app例如,你可以用cd
函数语法和双引号字符串输入参数。
cd (“C: \程序文件”)
当你有多个字符串时,将它们存储在字符串数组中,不一个细胞数组。使用方括号而不是花括号创建字符串数组。在存储和操作文本方面,字符串数组比单元格数组更有效。
str = [“金星”,“地球”,“火星”]
str = 1×3 string array "金星" "地球" "火星"
避免使用字符串的单元格数组。当您使用单元格数组时,您将放弃使用字符串数组所带来的性能优势。事实上,大多数函数不接受字符串单元格数组作为输入参数、选项或名称-值对的值。例如,如果指定字符串单元格数组作为输入参数,则包含
函数抛出错误。
C = {“金星”,“地球”,“火星”}
C = 1×3单元阵列{[“金星”]}{【“地球”】}{("火星")}
TF =包含(C,“地球”)
使用contains First参数时出错,该参数必须是字符串数组、字符向量或字符向量的单元格数组。
相反,将参数指定为字符串数组。
str = [“金星”,“地球”,“火星”];TF =包含(str,“地球”);
在R2016b之前,术语“字符串单元数组”指的是其元素全部包含字符向量的单元数组。但是将这种单元格数组称为“字符向量的单元格数组”更为精确,以将它们与字符串数组区分开来。
单元格数组可以包含任何数据类型的变量,包括字符串。仍然可以创建元素全部包含字符串的单元格数组。如果您已经在代码中指定了字符向量的单元格数组,那么用双引号替换单引号似乎是一个简单的更新。但是,不建议您创建或使用字符串单元格数组。
长度()
字符串返回1?使用the是很常见的长度
函数确定字符向量中的字符数。但是要确定字符串中的字符数,请使用strlength
功能,不长度
.
使用单引号创建字符向量。要确定它的长度,请使用长度函数。因为C
是一个向量,其长度等于字符数。C
是一个1 × 11的向量。
C =“Hello world”;L =长度(C)
L = 11
使用双引号创建一个相同字符的字符串。虽然它存储了11个字符,str
是一个1乘1的字符串数组,还是字符串标量.如果对字符串标量调用length,则输出参数为1
,不管它存储了多少字符。
str =“Hello World”;L =长度(str)
L = 1
要确定字符串中的字符数,请使用strlength
函数,在R2016b中引入。的兼容性,strlength
也作用于字符向量。在这两种情况下strlength
返回字符数。
L = strlength (C)
L = 11
L = strlength (str)
L = 11
你也可以用strlength
包含多个字符串的字符串数组和字符向量的单元格数组。
的长度
函数返回数组的最长维度的大小。对于字符串数组,长度
返回字符串沿着数组的最长维度。它不返回字符数在字符串。
isempty (" ")
返回0 ?一个字符串可以没有任何字符。这样的字符串是空字符串.可以使用空双引号对指定空字符串。
L = strlength ("")
L = 0
然而,空字符串是不一个空数组。空字符串是一个碰巧没有字符的字符串标量。
深圳=大小("")
Sz = 1×2 11
如果你叫isempty
在空字符串上,然后返回0
(假
),因为字符串不是空数组。
tf = isempty ("")
逻辑0
然而,如果你打电话isempty
在空字符数组上,然后返回1
(真正的
).指定为空单引号对的字符数组,''
,是一个0 × 0字符数组。
tf = isempty ('')
逻辑1
要测试一段文本是否没有字符,最佳实践是使用strlength
函数。无论输入是字符串标量还是字符向量,都可以使用相同的调用。
str ="";如果Strlength (str) == 0'字符串没有文本')结束
字符串没有文本
空空的='';如果Strlength (chr) == 0'字符向量没有文本')结束
字符向量没有文本
可以使用方括号将文本追加到字符向量。但是如果您使用方括号将文本添加到字符串数组中,那么新文本将作为字符串数组的新元素连接起来。要将文本追加到字符串,请使用+
运营商或strcat
函数。
例如,如果您连接两个字符串,那么结果将是一个1乘2的字符串数组。
str = [“你好”“世界”]
str = 1×2 string array "Hello" "World"
但是,如果您连接两个字符向量,那么结果将是一个更长的字符向量。
str = [“你好”“世界”]
装备=“HelloWorld”
要将文本追加到字符串(或字符串数组的元素),请使用+
运算符而不是方括号。
str =“你好”+“世界”
str =“HelloWorld”
作为替代,您可以使用strcat
函数。strcat
附加文本,无论输入参数是字符串还是字符向量。
str = strcat (“你好”,“世界”)
str =“HelloWorld”
不管你用方括号,+
,或strcat
,您可以指定任意数量的参数。在中间追加一个空格字符你好
和世界
.
str =“你好”+”“+“世界”
str = "Hello World"
cd
|包含
|拷贝文件
|dir
|isempty
|长度
|负载
|+
|大小
|sprintf
|strcat
|字符串
|strlength