MATLAB字符串

目录

字符串的表示

1、字符串是用单引号括起来的字符序列。

2、在字符串中单引号是不能直接打出来的,需要用两个单引号来表示。

3、一个字符串就是一个行向量,每个元素对应一个字符,其引用方法与数值向量相同,

4、也可以用多行字符串建立字符串矩阵。

字符串的操作

1、字符串的执行

2、字符串与数值之间的转换

 3、字符串的连接

4、字符串的比较

关系运算符比较

字符串比较函数比较

5、字符串的查找与替换


在实际应用中,有两种基本的数据类型,一个是数值型数据,是指能参与数值运算的数据,分为整型、浮点型、复数型。另一个是字符型数据或称为字符串数据

字符串的表示

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还提供了许多字符串与数值数据之间转换的函数

函数起始类型结果类型
seterASCII码值

对应的字符

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,

posted @   morphism  阅读(334)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示