Matlab从入门到精通(八)--字符串操作

  1. 字符串的定义

>> str='今天,是2018年11月23日, 我们班一起去上海旅游。'

  1. 下标访问字符串

>>str(1)

         今

>>str(3)

         ,

3、字符串的运算

 

符 号 形 式

符 号 意 义

英 文 简 写

==

等于

eq

~=

不等于

ne

<

小于

lt

大于

gt

<=

小于或等于

le

>=

大于或等于

ge

4、字符串的分类

可以用isletter和isspace两个函数来对字符串中的字符进行分类 。

4.1Isletter函数

Isletter(str)用来判断字符串str中的每个字符是否是字符:

>> str = 'A12 ,as,1234213,Yu';

>> isletter(str)

ans =

     1     0     0     0     0     1     1     0     0     0     0     0     0     0     0     0     1     1

 

4.2isspace函数

isspace(str)函数用来判断字符串str中每个字符是否是空格.

str = '12ac3c a,  a';

>> isspace(str)

ans =

     0     0     0     0     0     0     1     0     0     1     1     0

 

5、字符串与数值的转换

函  数

功    能

函  数

功    能

upper

改该字符串为大写

lower

改该字符串为小写

fprintf

把格式化的文本写到文件中或显示屏上

sprintf

用格式控制,数字转换成字符串

sscanf

用格式控制,字符串转换成数字

char

ASCII码转换成字符串

num2str

数字转换成字符串

int2str

整数转换成字符串

char

生成字符串数组

int2str

整数转换为字符串

mat2str

矩阵转换为字符串

num2str

数值转换为字符串

sprintf

格式输出字符串

sscanf

格式读入字符串

str2double

字符串转换为双精度

str2num

字符串转换为数值

6、比较两个字符串

使用strcmp()函数,当两个字符串相等时返回1,否则返回0.

>> strcmp('12','012')

ans =

     0

>> strcmp('12wq','12wq')

ans =

     1

7、单元数组(cell)输出及转换为字符串

(1)单元数组输出:celldisp(A);%A为单元数组

(2)单元数组转换为字符串:用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组,要想将其转换称字符型则可以利用char()函数.例:

>> t = {'20','001101'};

>> char(t{1})

ans =

20

8、字符串转换为数字

Double()是将字符串的每个字符转换称ASCII,而str2num()函数是将字符串直接转换成数字.

>> s ='012';

>> res = double(s)

 

res =

    48    49    50

>> str2num(s)

ans =

12

9、取出字符串的子串

>> str = '0001111012';

取出str的前5个字符

>> str(1:5)

ans =

00011

取出str后的5个字符

>> str(end-5:end)

ans =

111012

取出str的后5个字符

>> str(numel(str)-5:numel(str))

ans =

111012

10、字符串连接

(1)方法一:

在MATLAB中,字符串的联接十分方便,其一般格式为:

[字符串变量1,字符串变量2,'字符集1', '字符集2',…]

例如:若键入['圆周率为',num2str(pi)],屏幕上显示出

ans =

圆周率为3.1416

 

(2)方法二

使用函数strcat.

>> str1 = '0111';

>> str2 = '333390';

>> strcat(str1,str2)

ans =

0111333390

11、替换字符串的某几位

替换字符串的后三位:

>> str = '0110999';

>> str(end-2:end)='112'

str =

0110112

12、从字符串读取数据

使用strread函数可以从字符串中读取数据,使用格式:

[a,b,c,…] = strread(cstr,’format’,’param’,’value’) ;

示例:

>> t = '12.6,x2y,z';

>> [a,b,c] = strread(t,'%f%q%q','delimiter',',') ;

>> a

 

a =

 

   12.6000

 

>> b

 

b =

 

    'x2y'

 

>> c

 

c =

 

'z'

注:

  1. 对于第二个参数中,%f表示浮点数,%q表示字符串;
  2. 第三个参数为’delimiter’表示format中识别的项将由value中指定的字符分割(此处为’,’).
  3. 结果中的b,c变量输出均带有单引号,表示为单元(cell)数组.

13、其它字符串函数

函 数 名

函 数 用 途

函 数 名

函 数 用 途

strvcat

垂直链接字符串

strncmp

比较字符串的前n个字符

findstr

在其他的字符串中寻找该字符串

strrep

用其他字符串代替改串

symvar

寻找字符串表达式中的变量(除了i,j,pi,inf,nan,eps以及通用函数

的其他标识符),如果没有找到变量则返回空单元数组{}

blanks

生成空的字符串

deblank

删除字符串内的空格

ischar

字符串检验

iscellstr

字符串的单元检验

isletter

字母检验

isspace

空格检验

strings

strings函数的帮助

deblank

去掉字符串末尾的空格

lower

转换为小写

strcmpi

字符串比较(忽略大小写)

strjust

调整字符串排列位置

strrep

寻找和替代

strtok

寻找字符串中第一个空字符前边的字符串××

texlabel

将字符串转换为Tex格式(推荐理科同学掌握Latex)

upper

大写

猜你喜欢

转载自blog.csdn.net/huzhizhewudi/article/details/84404533