常见问题解答关于字符串数组

MATLAB®推出在R2016b数据类型。在R2018b开始,您可以使用字符串数组来工作,整个文本MathWorks公司®s manbetx 845产品。字符串数组存储文本块和用于处理文本数据的工作提供的一组功能。你可以索引,重塑和连接字符串数组就像你可以与任何其他类型的数组。欲了解更多信息,请参阅创建字符串数组

在大多数方面中,字符串数组表现得像字符向量和特征向量的单元阵列。不过,也有字符串数组和字符数组,可导致你可能不希望结果之间的一些关键区别。对于这些差异,存在使用字符串,导致了预期的结果,建议这样做。

为什么使用命令表用绳子返回一个错误?

当您使用功能,如光盘DIR拷贝文件, 要么加载在命令形式的功能,避免使用双引号。在命令行,双引号括起来的参数可能会导致错误。要指定参数为字符串,用函数形式。

随着命令的语法,你用空格而不是逗号分隔的投入,而你在括号不围输入参数。例如,你可以使用光盘使用命令语法更改文件夹功能。

光盘C:\ TEMP

文本C:\ TEMP是一个字符向量。在命令的形式,所有参数都总是特征向量。如果你有一个说法,如文件夹名称,包含空格,然后用单引号括起来指定为一个输入参数。

光盘'C:\ Program Files文件'

但是,如果你使用双引号指定参数,然后光盘抛出一个错误。

光盘“C:\ PROGRAM文件”
错误使用CD太多的输入参数。

该错误消息可以根据您使用的功能与您指定的参数会有所不同。例如,如果您使用加载命令语法功能,并使用双引号指定参数,然后加载抛出一个不同的错误。

加载“myVariables.mat”
错误使用负载无法读取文件“‘myVariables.mat’”:无效的参数。

在命令行,双引号被当作文字文本的一部分,而不是作为字符串建设运营商。如果你写的当量CD “C:\ Program Files文件”功能形式,那么它看起来像一个呼叫光盘有两个参数。

光盘('“C:\ PROGRAM'“文件“”

当指定参数为字符串,用函数的语法。所有功能的支持命令语法还支持函数的语法万博1manbetx。例如,你可以使用光盘与函数的语法和输入参数是双引号中的字符串。

光盘(“C:\ Program Files文件”

为什么在字符串数组单元返回一个错误?

当你有多个字符串,并将其存储在一个字符串数组,一个单元阵列。创建使用方括号,而不是大括号的字符串数组。字符串数组比单元阵列更有效用于存储和操作的文本。

海峡= [“金星”“地球”“火星”]
STR = 1×3字符串数组“金星”,“地球”,“火星”

避免使用字符串单元阵列。当您使用电池阵列,你放弃了那个来自使用字符串数组的性能优势。而事实上,大多数函数不接受字符串作为输入参数,期权或名称 - 值对的值的单元阵列。例如,如果指定字符串的单元阵列作为输入参数,则包含函数抛出一个错误。

C = {“金星”“地球”“火星”}
C = 1×3单元阵列{[ “金星”]} {[ “地球”]} {[ “火星”]}
TF =含有(C,“地球”
使用错误包含第一参数必须是一个字符串数组,字符向量,或字符向量的单元阵列。

取而代之的是,将参数指定为一个字符串数组。

海峡= [“金星”“地球”“火星”]。TF =含有(STR,“地球”);

R2016b,“串的单元阵列”一词意味着前一个单元阵列,其元素都包含特征向量。但更精确的将此类单元阵列为“字符向量的单元阵列,”从字符串数组区分它们。

单元阵列可以包含具有任何数据类型,包括字符串变量。它仍然是有可能创造一个单元阵列,其元素都包含字符串。如果你已经在你的代码中指定字符向量单元阵列,然后替换单引号用双引号似乎是一个简单的更新。但是,我们不建议您创建或字符串使用电池阵列。

为什么长度()的字符串返回1?

它是常用的长度函数来确定的字符向量的字符数。但要确定字符的字符串中的数量,使用strlength函数,而不是长度

创建使用单引号字符向量。为了确定它的长度,使用长度的功能。因为C是一个向量,它的长度等于字符数。C是1×11矢量。

C ='你好,世界';L =长度(C)
L = 11

使用双引号创建具有相同字符的字符串。虽然它能存储11个字符,海峡是一个1×1字符串数组,或串标。如果你调用一个串标量长度,则输出参数是1,无论它存储多少个字符。

海峡=“你好,世界”;L =长度(STR)
L = 1

要确定一个字符串中的字符数,使用strlength功能,R2016b介绍。为了兼容,strlength上字符向量进行操作也是如此。在这两种情况下,strlength返回的字符数。

L = strlength(C)
L = 11
L = strlength(STR)
L = 11

您还可以使用strlength在包含多个字符串的字符串数组和字符向量的单元阵列。

长度函数返回一个数组的最长尺寸的尺寸。为一个字符串数组,长度返回的数量字符串沿阵列的最长尺寸。它不返回的字符数字符串。

为什么是空的(””)返回0?

一个字符串可以在完全没有的字符。这样的字符串是一个空字符串。您可以指定使用一对空双引号的空字符串。

L = strlength(“”
L = 0

然而,一个空字符串空数组。空字符串是一个字符串标量出现这种情况有没有字符。

SZ =尺寸(“”
SZ = 1×2 1 1

如果你打电话是空的在一个空字符串,然后返回0),因为该字符串不是空数组。

TF =的isEmpty(“”
TF = 0逻辑

但是,如果你打电话是空的一个空字符阵列上,则它返回1真正)。指定为空对单引号的字符数组,“”是一个0逐0字符数组。

TF =的isEmpty(“”
TF = 1逻辑

为了测试一段文字是否有没有字符,最好的做法是使用strlength功能。您可以使用相同的呼叫输入是否是一个字符串标量或特征向量。

海峡=“”;如果strlength(STR)== 0 DISP(“字符串没有文字”结束
字符串没有文本
CHR =“”;如果strlength(CHR)== 0 DISP(“字符向量没有文字”结束
字符向量没有文本

为什么追加字符串用方括号返回多个字符串?

您可以将文字用方括号字符向量。但是,如果你用方括号文本添加到字符串数组,然后将新的文本将被连接的字符串数组的新元素。要追加文本字符串,请使用运营商或strcat的功能。

例如,如果你连接两个字符串,那么结果是一个1×2字符串数组。

海峡= [“你好”“世界”]
STR = 1×2字符串数组的 “Hello”, “世界”

但是,如果您连接两个特征向量,那么结果是一个较长的载体。

海峡= ['你好''世界']
CHR = '的HelloWorld'

将文本追加到一个字符串(或为一个字符串数组的元素),可以使用操盘方括号。

海峡=“你好”+“世界”
STR = “HelloWorld” 的

作为替代方案,你可以使用strcat的功能。strcat的追加文本的输入参数是否串或字符向量。

STR = strcat的(“你好”“世界”
STR = “HelloWorld” 的

无论您使用方括号,, 要么strcat的,你可以指定的参数任意数量。附加之间的空格字符你好世界

海峡=“你好”+“”+“世界”
海峡= “Hello World” 的

也可以看看

||||||||||||

相关话题