zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Matlab中字符串数组和字符数组中的文本

MATLAB字符数组 字符串 文本
2023-09-11 14:14:49 时间

目录

字符串数组和字符数组中的文本

用字符串数组表示文本

用字符向量表示文本


字符串数组和字符数组中的文本

        MATLAB® 中有两种表示文本的方式。从 R2016b 开始,可以将文本存储在字符串数组中。在任何版本的 MATLAB 中,都可以将文本存储在字符数组中。字符数组的一个典型用途是将文本片段存储为字符向量。MATLAB 用双引号显示字符串,用单引号显示字符向量。

用字符串数组表示文本

        可以使用 string 数据类型将任何n 字符序列存储为字符串。从 R2017a 开始,可以用双引号将文本括起来以创建字符串。

str = "Hello, world"

str = 
"Hello, world"

        虽然文本 "Hello, world" 的长度为 12 个字符,但 str 本身是 1×1 字符串或字符串标量。可以使用字符串标量来指定文件名、图标签或任何其他文本信息片段。要计算字符串中的字符数量,请使用strlength 函数。

n = strlength(str)

n = 12

        如果文本包含双引号,请在定义中使用两个双引号。

str = "They said, ""Welcome!"" and waved."

str = 
"They said, "Welcome!" and waved."

        要将文本添加到字符串的末尾,请使用加号运算符 +。如果变量可以转换为字符串,则 plus 会转换并追加它。

fahrenheit = 71;
celsius = (fahrenheit-32)/1.8;
tempText = "temperature is " + celsius + "C"

tempText = 
"temperature is 21.6667C"

        从 R2019a 开始,还可以使用 append 函数串联文本。

tempText2 = append("Today's ",tempText)

tempText2 = 
"Today's temperature is 21.6667C"

  string 函数可以转换不同类型的输入,如数值、日期时间、持续时间和分类值。例如,将 pi 的输出转换为字符串。

ps = string(pi)

ps = 
"3.1416"

        可以将多个文本片段存储在字符串数组中。数组的每个元素都可以包含一个具有不同字符数的字符串,而无需填充。

str = ["Mercury","Gemini","Apollo";...
       "Skylab","Skylab B","ISS"]

str = 2x3 string array
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

   str 是一个 2×3 的字符串数组。可以使用 strlength 函数计算字符串的长度。

N = strlength(str)

N = 2×3

     7     6     6
     6     8     3

        从 R2018b 开始,MATLAB 和 MathWorks® 全线产品都支持字符串数组。接受字符数组(和字符向量元胞数组)作为输入的函数也接受字符串数组。

用字符向量表示文本

        要使用 char 数据类型将 n 字符序列存储为字符向量,请用单引号将它引起来。

chr = 'Hello, world'

chr = 
'Hello, world'

        文本 'Hello, world' 的长度为 12 个字符,chr 将其存储为 1×12 字符向量。

whos chr
  Name      Size            Bytes  Class    Attributes

  chr       1x12               24  char               

        如果文本包含单引号,请在定义中使用双重单引号。

chr = 'They said, ''Welcome!'' and waved.'

chr = 
'They said, 'Welcome!' and waved.'

        字符向量有两个主要用途:

  • 指定单个文本片段,如文件名和图标签。

  • 表示使用字符进行编码的数据。在这种情况下,可能需要尽可能方便地访问单个字符。

        例如,可以将 DNA 序列存储为一个字符向量。

seq = 'GCTAGAATCC';

        可以通过索引来访问单个字符或字符子集,就像对数值数组进行索引一样。

seq(4:6)

ans = 
'AGA'

        用方括号串联字符向量,就像串联其他类型的数组一样。

seq2 = [seq 'ATTAGAAACC']

seq2 = 
'GCTAGAATCCATTAGAAACC'

        从 R2019a 开始,还可以使用 append 串联文本。推荐使用 append 函数,因为它以一致的方式处理字符串数组、字符向量和字符向量元胞数组。

seq2 = append(seq,'ATTAGAAACC')

seq2 = 
'GCTAGAATCCATTAGAAACC'

        接受字符串数组作为输入的 MATLAB 函数也接受字符向量和字符向量元胞数组。