MATLAB字符串
目录
2、在字符串中单引号是不能直接打出来的,需要用两个单引号来表示。
3、一个字符串就是一个行向量,每个元素对应一个字符,其引用方法与数值向量相同,
在实际应用中,有两种基本的数据类型,一个是数值型数据,是指能参与数值运算的数据,分为整型、浮点型、复数型。另一个是字符型数据或称为字符串数据。
字符串的表示
1、字符串是用单引号括起来的字符序列。
xm='Central South University'
xm =
Central South University
2、在字符串中单引号是不能直接打出来的,需要用两个单引号来表示。
'I ''m a student.'
ans =
I 'm a student.
3、一个字符串就是一个行向量,每个元素对应一个字符,其引用方法与数值向量相同,
A='ABCDEF'
A =
ABCDEF
A(1:4)
ans =
ABCD
4、也可以用多行字符串建立字符串矩阵。
ch=['abcdef';'123456'];
ch(2,4)
ans =
4
注意这时要求每行的字符数要相等,必要时需要用空格调节各行的长度,这也表明此时一个空格也占一个字符长度。
ch=['abcdef';'12 345'];
ch(2,3)
ans =
字符串的操作
1、字符串的执行
eval函数-——将字符串的内容作为对应的MATLAB命令
eval(s)
其中s为字符串 。
t=pi;
m='[t,sin(t),cos(t)]';
y=eval(m)
y =
3.1416 0.0000 -1.0000
2、字符串与数值之间的转换
字符串是以ASCII码存储的。
可以用abs函数和double函数获取字符串矩阵的ASCII码值矩阵。
相反,可以用char函数把ASCII码矩阵转换成字符串矩阵。
s1='MATLAB'
s1 =
MATLAB
a=abs(s1)
a =
77 65 84 76 65 66
char(a+32)
ans =
matlab
MATLAB还提供了许多字符串与数值数据之间转换的函数
函数 | 起始类型 | 结果类型 |
seter | ASCII码值 | 对应的字符 |
str2num、str2double | 数字字符串 | 数值 |
num2str | 数值 | 字符串 |
int2str | 整数 | 字符串 |
char(77+32)
ans =
m
setstr(77)
ans =
M
setstr(77+32)
ans =
m
str2num('2345')
ans =
2345
str2double('2345')
ans =
2345
num2str(4535)
ans =
4535
int2str(244.6)
ans =
245
int2str(234)
ans =
234
str2num('2323.434')
ans =
2.3234e+03
3、字符串的连接
要将两个字符串连接起来,有两种常见的方法: 一是用字符串向量;二是用 strcat 函数。
(1)用字符串向量可以把若干个字符串连接起来,即用中括号(毕竟是用向量的方法)将若干个字符串括起来,从而得到一个更长的字符串。注意空格!!!!
f=70;
c=(f-32)/1.8;
['Room remperature is',num2str(c),'degrees C.']
ans =
Room remperature is21.1111degrees C.
['Room remperature is ',num2str(c),' degrees C.']
ans =
Room remperature is 21.1111 degrees C.
(2)strcat函数也可以(用小括号)将若干个字符串连接起来
strcat('ss','ff','DD','1234')
ans =
ssffDD1234
4、字符串的比较
字符串比较有两种方法;一种是利用关系运算符比较相应的关系;另一种是用字符串比较函数比较函数所想比较的东西。
关系运算符比较
比较前提: 两个字符串的长度相同,如果不同,免谈!
比较规则: 按ASCII值大小逐个字符比较。
比较结果: 一个数值向量,由0和1构成。
>> 'wwww'>='ww0'
错误使用 >=
矩阵维度必须一致。
'www0'>='w123'
ans =
1 1 1 0
字符串比较函数比较
字符串比较函数用于判断字符串在相应意义下是否相等。
字符串比较函数 | 比较意义 | 结果 |
strcmp(s1,s2) | 比较字符串s1和s2是否相等 | 如果相等,返回1;否则返回0 |
strncmp(s1,s2,n) | 比较前n个字符是否相等 | 如果相等,返回1;否则返回0 |
strcmpi(s1,s2) | 在忽略字母大小写的前提下,比较字符串s1和s2是否相等 | 如果相等,返回1;否则返回0 |
strncmpi(s1,s2,n) | 在忽略字符串大小写前提下,比较前n个字符是否相等 | 如果相等,返回1;否则返回0 |
strcmp('www0','w123')
ans =
0
strncmp('www0','w123',1)
ans =
1
strncmp('www0','w123',3)
ans =
0
strncmp('www0','W123',1)
ans =
0
strcmpi('world','WORLD')
ans =
1
strncmpi('world','WORLD',3)
ans =
1
strncmpi('world','WOfLD',3)
ans =
0
5、字符串的查找与替换
常见的两个函数对字符串中的字符进行(1)查找与(2)替换
(1)findstr(s1,s2) :返回短字符串在长字符串中的开始位置. 从函数定义可以知道不用在意s1
和s2的位置,即 findstr(s1,s2)=findstr(s2,s1).
再强调我们需要知道一个空格占据一个字符位。
findstr('This is a test','is')
ans =
3 6
findstr('is','This is a test')
ans =
3 6
(2)strrep(s1,s2,s3) :将字符串s1中的所有子字符串s2替换为字符串s3.
strrep('This is a test','test','class')
ans =
This is a class
>> strrep('This is a test,This is a testbook,This is a booktest,This is a teboolst,This is a test,','test','class')
ans =
This is a class,This is a classbook,This is a bookclass,This is a teboolst,This is a class,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?