Matlab字符串字符串数组数据类型转换字符串
创建字符向量
通过将字符序列括在单引号中来创建⼀个字符向量。
chr = 'Hello, world'
chr =
'Hello, world'
字符向量为 char 类型的 1×n 数组。在计算机编程中,字符串是表⽰ 1×n 的常⽤术
语。但是,从 R2016b 开始, 同时提供 string 数据类型,因此 1×n 字符数组在
MATLAB ⽂档中称为字符向量。
whos chr
Name Size Bytes Class Attributes
chr 1x12 24 char
如果⽂本包含单个引号,请在分配字符向量时放⼊两个引号。
newChr = 'You''re right'
newChr =
'You're right'
uint16 等函数将字符转换为其数值代码。
chrNumeric = uint16(chr)
chrNumeric =
1×12 uint16 row vector
72 101 108 108 111 44 32 119 111 114 108 100
char 函数将整数向量重新转换为字符。
chrAlpha = char([72 101 108 108 111 44 32 119 111 114 108 100])
要将字符向量合并到⼆维字符数组中,请使⽤⽅括号或 char 函数。
· 应⽤ MATLAB 串联运算符 []。使⽤分号 (;) 分隔每⼀⾏。每⼀⾏都必须包含相同数量的字
符。例如,合并长度相同的三个字符向量:
devTitle = ['Thomas R. Lee'; ...
'Sr. Developer'; ...
'SFTware Corp.']
devTitle =
3×13 char array
'Thomas R. Lee'
'Sr. Developer'
'SFTware Corp.'
如果字符向量的长度不同,请根据需要⽤空格字符填充。例如:
mgrTitle = ['Harold A. Jorgensen '; ...
'Assistant Project Manager'; ...
'SFTware Corp. ']
调⽤ char 函数。如果字符向量的长度不同,char 将⽤尾随空格填充较短的向量,以使每
⼀⾏具有相同数量的字符。
mgrTitle = char('Harold A. Jorgensen', ...
'Assistant Project Manager', 'SFTware Corp.')
mgrTitle =
3×25 char array
'Harold A. Jorgensen '
'Assistant Project Manager'
'SFTware Corp. '
⽔平合并字符向量
要将字符向量合并到⼀个⾏向量中,请使⽤⽅括号或 strcat 函数。
· 应⽤ MATLAB 串联运算符 []。⽤逗号或空格分隔输⼊字符向量。此⽅法可保留输⼊数组中的任何尾随空格。
name = 'Thomas R. Lee';
title = 'Sr. Developer';
company = 'SFTware Corp.';
fullName = [name ', ' title ', ' company]
MATLAB 返回
fullName =
'Thomas R. Lee, Sr. Developer, SFTware Corp.'
调⽤串联函数 strcat。此⽅法可删除输⼊中的尾随空格。例如,组合字符向量以创建⼀个
假设的电⼦邮件地址。
name = 'myname ';
domain = 'mydomain ';
ext = 'com ';
address = strcat(name, '@', domain, '.', ext)
address =
'myname@mydomain'
使⽤以下任何函数标识字符数组,或者标识字符数组中的某些字符。
函数 说明
ischar 确定输⼊是否为字符数组
isletter 查输⼊字符数组中的所有英⽂字母
isspace 查输⼊字符数组中的所有空格字符
isstrprop 查特定类别的所有字符
数组转换成字符串查字符向量中的空格。
chr = 'Find the space characters in this character vector';
% | | | | | | |
% 5 9 15 26 29 34 44
find(isspace(chr))
ans =
5 9 15 2
6 29 34 44
使⽤空格字符
blanks 函数会创建⼀个包含空字符的字符向量。创建⼀个包含 15 个空格字符的向量。字符
向量始终会显⽰在单引号之间。
chr = blanks(15)
chr =
' '
在空⽩字符向量的中间插⼊⼀些⾮空格字符。
chr(6:10) = 'AAAAA'
chr =
' AAAAA '
您可以使⽤ strjust 函数将这些字符的位置向左或向右对齐:
chrLeft = strjust(chr,'left')
chrLeft =
'AAAAA '
chrRight = strjust(chr,'right')
chrRight =
' AAAAA'
使⽤ deblank 删除所有尾随空格字符:
chrDeblank = deblank(chr)
chrDeblank =
' AAAAA'
使⽤ strtrim 删除所有前导和尾随空格:
chrTrim = strtrim(chr)
chrTrim =
'AAAAA'
字符数组中的数据
有时,字符表⽰的数据并不对应到⽂本,例如 DNA 序列。您可以将此类数据存储在数据类型
为 char 的字符数组中。字符数组使⽤单引号。
seq = 'GCTAGAATCC';
whos seq
Name Size Bytes Class Attributes
seq 1x10 20 char
数组的每个元素都包含单个字符。
seq(4)
ans =
'A'
使⽤⽅括号串联字符数组,就像串联数值数组⼀样。
seq2 = [seq 'ATTAGAAACC']
seq2 =
'GCTAGAATCCATTAGAAACC'
在字符串数组引⼊之前编写的程序中,字符数组很常见。接受 string 数据的所有 MATLAB 函
数都能接受 char 数据,反之亦然
创建字符串数组 R2016b 中引⼊了字符串数组。字符串数组可存储⽂本⽚段,并提供⼀组⽤于将⽂本按数据进 ⾏处理的函数。您可以对字符串数组进⾏索引、重构和进⾏串联,就像处理任何其他类型的数 组⼀样。此外,还可以访问字符串中的字符,并使⽤ plus 运算符向字符串追加⽂本。要重新 排列字符串数组中的字符串,请使⽤ split、 join 和 sort 等函数。 根据变量创建字符串数组 MATLAB® 提供字符串数组来存储⽂本⽚段。字符串数组的每个元素都包含⼀个 1×n 字符序 列。 从 R2017a 开始,您可以使⽤双引号创建字符串。
当您处理⽂本时,将字符序列括在双引号中。可以将⽂本赋给变量。
t = "Hello, world";
如果⽂本包含双引号,请在定义中使⽤两个双引号。
q = "Something ""quoted"" and something else."
q =
"Something "quoted" and something else."
作为备选⽅法,您可以使⽤ string 函数将字符向量转换为字符串。 chr 为⼀个 1×17 字符向量。 str 为⼀个与该字符向量具有相同⽂本的 1×1 字符串。
chr = 'Greetings, friend'
chr =
'Greetings, friend'
str = string(chr)
str =
"Greetings, friend"
使⽤ [] 运算符创建⼀个包含多个字符串的字符串数组。 str 是⼀个 2×3 字符串数组,其中包含六个字符串。
str = ["Mercury","Gemini","Apollo";
"Skylab","Skylab B","ISS"]
str = 2x3 string array
"Mercury" "Gemini" "Apollo"
"Skylab" "Skylab B" "ISS"
作为备选⽅法,您可以使⽤ string 函数将字符向量元胞数组转换为字符串数组。MATLAB 使⽤双引号显⽰字符串数组中的字符串,使⽤单引号显⽰元胞数组中的字符向量。
C = {'Mercury','Venus','Earth'}
C = 1x3 cell array
{'Mercury'} {'Venus'} {'Earth'}
str = string(C)
str = 1x3 string array
"Mercury" "Venus" "Earth"
要将⽂本添加到字符串的末尾,请使⽤加号运算符 +。
f = 71;
c = (f-32)/1.8;
tempText = "Temperature is " + c + "C"
tempText =
"Temperature is 21.6667C"
与数值数组类似,字符串数组可以有多个元素。使⽤ strlength 函数求数组中每个字符串的长度。
A = ["a","bb","ccc"; "dddd","eeeeee","fffffff"]
A =
2×3 string array
strlength(A)
除了字符向量,您还可以使⽤ string 函数将数值、⽇期时间、持续时间和分类值转换为字符串。
将数值数组转换为字符串数组。
X = [5 10 20 3.1416];
string(X)
ans = 1x4 string array
"5" "10" "20" "3.1416"
将⽇期时间值转换为字符串。
d = datetime('now');
string(d)
ans =
"03-Feb-2019 10:12:54"
将字符串串联到字符串数组中
将字符串串联到字符串数组中,就像您串联任何其他类型的数组⼀样。
使⽤⽅括号 [] 串联两个字符串数组。
str1 = ["Mercury","Gemini","Apollo"];
str2 = ["Skylab","Skylab B","ISS"];
str = [str1 str2]
str = 1x6 string array
"Mercury" "Gemini" "Apollo" "Skylab" "Skylab B" "ISS"
转置 str1 和 str2。将它们进⾏串联,然后将列标题垂直串联到字符串数组上。当您将字符向量串联到字符串数组中时,字符向量会⾃动转换为字符串。
str1 = str1';
str2 = str2';
str = [str1 str2];
str = [["Mission:","Station:"] ; str]
str = 4x2 string array
"Mission:" "Station:"
"Mercury" "Skylab"
"Gemini" "Skylab B"
"Apollo" "ISS"
字符串相关函数
字符串数组
字符串数组
创建不包含字符的字符串数组
合并字符串
字符数组
字符数组
转换为字符向量元胞数组
创建空⽩字符数组
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论