0
点赞
收藏
分享

微信扫一扫

Matlab中string函数的使用

艾晓雪 2022-04-13 阅读 68

目录

创建对象

语法

示例

拆分字符串并查找唯一单词

转换字符向量

转换元胞数组

转换数值数组

转换表示数字的字符串

转换持续时间数组


        从 R2016b 开始,可以使用字符串数组而不是字符数组来表示文本。字符串数组的每个元素存储一个字符序列。序列可以具有不同长度,无需填充,例如 "yes" 和 "no"。只有一个元素的字符串数组也称为字符串标量。

        可以按照标准数组运算对字符串数组进行索引、重构和串联,还可以使用 + 运算符向字符串追加文本。如果字符串数组表示数字,则可以使用 double 函数将其转换为数值数组。

创建对象

        可以通过用双引号括起一段文本来创建字符串。从 R2017a 开始引入双引号。

str = "Hello, world"
str = 
"Hello, world"

        创建字符串数组的一种方法是使用方括号将字符串串联成数组,就像将数字串联成数值数组一样。

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


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

        也可以按如下所述,使用 string 函数将不同数据类型的变量转换成字符串数组。

语法

str = string(A)
str = string(D)
str = string(D,fmt)

str = string(A) 将输入数组转换为字符串数组。

str = string(D) 以 D 的 Format 属性指定的格式将日期时间、持续时间或日历持续时间数组转换为字符串数组。输出在每行中包含一个日期或持续时间。

str = string(D,fmt) 以指定的格式(例如 'HH:mm:ss')表示日期或持续时间。

str = string(D,fmt,locale) 以指定的区域设置(例如 'en_US')表示日期或持续时间。区域设置会影响用于表示字符串(例如月份和日期名称)的语言。

示例

拆分字符串并查找唯一单词

        要查找字符串中的唯一单词,请在空格字符处拆分字符串,然后调用 unique 函数。

        首先创建一个字符串标量。

str = "A horse! A horse! My kingdom for a horse!"
str = 
"A horse! A horse! My kingdom for a horse!"

        删除感叹号。

str = erase(str,"!")

str = 
"A horse A horse My kingdom for a horse"

        将 str 中的所有字母转换为小写字符。

str = lower(str)

str = 
"a horse a horse my kingdom for a horse"

        使用 split 函数在空格字符处拆分 str。split 将丢弃空格字符,并以字符串数组形式返回结果。

str = split(str)

str = 9x1 string
    "a"
    "horse"
    "a"
    "horse"
    "my"
    "kingdom"
    "for"
    "a"
    "horse"

        使用 unique 函数查找 str 中的唯一单词。

str = unique(str)
str = 5x1 string
    "a"
    "for"
    "horse"
    "kingdom"
    "my"

转换字符向量

A = 'Four score and seven years ago'
A = 
'Four score and seven years ago'
str = string(A)
str = 
"Four score and seven years ago"

        str 包含与 A 相同的字符。但是,A 是字符向量,而 str 是字符串标量。

c = size(A)
c = 1×2

     1    30

s = size(str)
s = 1×2

     1     1

        要返回 str 中的字符数,使用 strlength 函数。

n = strlength(str)
n = 30

转换元胞数组

        将字符向量元胞数组转换为字符串数组。

A = {'Mercury','Gemini','Apollo';...
     'Skylab','Skylab B','ISS'}
A = 2x3 cell
    {'Mercury'}    {'Gemini'  }    {'Apollo'}
    {'Skylab' }    {'Skylab B'}    {'ISS'   }

str = string(A)
str = 2x3 string
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

        要访问 str 的第一行中的第二个元素,请使用圆括号进行索引。可以通过矩阵索引访问字符串数组中的字符串,就像访问数值数组的元素一样。

str(1,2)
ans = 
"Gemini"

        访问第三列。

str(:,3)
ans = 2x1 string
    "Apollo"
    "ISS"

转换数值数组

A = [77 65 84 76 65 66]
A = 1×6

    77    65    84    76    65    66

str = string(A)
str = 1x6 string
    "77"    "65"    "84"    "76"    "65"    "66"

        str 是字符串数组,其中每个元素表示 A 中的一个数值。请注意,string 不会像 char 函数那样将数字视为 ASCII 或 Unicode® 值。

转换表示数字的字符串

        创建一个字符串数组,其中每个元素代表一个数字。要将字符串数组转换为数值数组,请使用 double 函数。

str = ["256","3.1416","8.9e-3"]
str = 1x3 string
    "256"    "3.1416"    "8.9e-3"

X = double(str)
X = 1×3

  256.0000    3.1416    0.0089

        当输入参数为字符串数组时,double 函数会将每个元素视为一个浮点值的表示形式。但是,当输入是字符数组时,double 会将每个字符转换为表示其 Unicode® 值的数字。

        也可以使用 str2double 函数。当输入参数可能是字符串数组、字符向量或字符向量元胞数组时,适合使用 str2double。

Y = str2double(str)
Y = 1×3

  256.0000    3.1416    0.0089

C = '2.7183';
Z = str2double(C)
Z = 2.7183

转换持续时间数组

        创建一个 duration 数组。

D = hours(23:25) + minutes(8) + seconds(1.2345)
D = 1x3 duration
   23.134 hr   24.134 hr   25.134 hr

        将 D 转换为字符串数组。

str = string(D)
str = 1x3 string
    "23.134 hr"    "24.134 hr"    "25.134 hr"

        str 是每个元素对应一个持续时间值的字符串数组。str 的大小与 D 相同。

        指定 str 中的持续时间值的格式。

str = string(D,'hh:mm')
str = 1x3 string
    "23:08"    "24:08"    "25:08"

提示

  • 有关在字符串数组中创建和处理文本的函数列表,可以参考字符和字符串。

  • 如果输入参数是对象,则它必须属于实现 string 方法来将对象表示为字符串的类。

举报

相关推荐

0 条评论