MATLAB字符串

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

字符串

设定字符串

MATLAB中只需用单引号“’”将需要设定的字符串引注即可

str='This is a string! It can be used easily!'

whos

此外字符串内的单引号是由两个连续的单引号来表示,字符串链接可以直接从数组连接中得到

u='Taiwan is part of China,'

v='and Jiang core said:''There must be a war between the strait!'''

w=[u v]

字符串可以有多个行,但每行必须有相同数目的列数,因此要用空格使所有行有相同的长度t=['yuyu '

'chenrui']

字符串的操作

1、字符串元素的读取

(1)、利用数组操作工具

str(6)

str(5)

s=str(10:16)

w=str(16:-1:10) %s的倒序

(2)、使用disp函数

disp允许不显示它的变量名而显示一个字符串

str

s

disp(str) %省去了str=

disp(s) %省去了s=

2、字符串的基本变换

(1)、ASCII码操作:将字符串变为ASCII码

a=abs(str)

(2)、使用char函数进行逆变换

S=char(X):将包含正数(ASCII码的前127个数码)的数组X转换为字符型数组的对应行

S=char(T1,T2,T3,…):生成的字符串矩阵包含字符串T1、T2和T3,他们的字符个数可以不相等,分别转换到对应

S=char(C):C是字符型单元数组,该命令将C中的每个单元转换为字符型数组的对应行

t=['yuyu ';'chenrui']

s=abs(t)

b=char(s)

s=char('yuyu','and chenrui') %显示为两行

ss={'Matlab','NJUPT','Yuyu'}

sss=char(ss) %显示为三行

其具体的字符串函数与C语言类似

(3)、字符串的执行(eval函数:将括号内的字符串视为语句并运行)

eval('a= magic(4)')

for n=3:5

eval(['M' num2str(n) '=magic(n)'])

end

3、字符串的运算

(1)、判断字符串是否相等

strcmp(s1,s2):相等返回1,不等返回0

strncmp(s1,s2,n):判断s1和s2的前n个字符是否相等,相等返回1,不等返回0

words1='situate';

words2='situp';

N1=strcmp(words1,words2)

N2=strncmp(words1,words2,3)

N3=strncmp(words1,words2,4)

N4=strncmp(words1,words2,5)

单元数组情况

famous1={'GREAT';'SUMMER PALACE';'JIU ZHAI GOU'};

famous2={'GREAT';'TAI MOUNTAIN';'ZHANGJIAJIE'};

N=strcmp(famous1,famous2)

N=strncmp(famous1,famous2,1)

N=strncmp(famous1,famous2,3)

(2)、通过字符的运算比较字符

对字符串当做字符数组进行比较

F1='CARESS ';

F2='CHARLATAN';

F1>=F2 %结果101011000

(3)、字符串中字符的分类

isspace(S):判断字符S是否为空白字符

isletter(S):判断字符S是否为字母字符

realstring=' yuyu19900626@';

A=isspace(realstring)

A=isletter(realstring)

(4)、查找与替换

K=findstr(S1,S2):根据所给的字符串中的字符来查找字符串,当查找成功后返回字符的具体位置,S1和S2可以互调

s='How much wood would a woodchunk chunk?';

a1=findstr(s,'a') %返回21

a2=findstr(‘a’,s) %返回21

a3=findstr(s,'A')

a4=findstr(s,'wood')

a5=findstr(s,'Wood')

a6=findstr(s,' ')

K=strfind(text,pattern):根据所给字符串中的字符来查找字符串,只能在text中查找pattern

s='How much wood would a woodchunk chunk?';

b1=strfind(s,'a')

b2=strfind('a',s) %结果为空

b3=strfind(s,'wood')

b4=strfind(s,'Wood')

b5=strfind(s,' ')

S=strrep(S1,S2,S3):把字符串S1中的S2字符串都换成字符串S3,并返回置换后的新字符串s1='This is a beautiful women!';

strrep(s1,'women','girl') %This is a beautiful girl!

strrep(s1,'beautiful','ugly') %This is a ugly women!

strrep(s1,'','women') %This is a beautiful women!

(5)、字符串与数值的转换

T=num2str(X):将矩阵X转换为一个字符串T,T的精度为4位小数

T=num2str(X,N):N为精度,最多16位

T=num2str(X,format):转换为format格式的字符串

X=num2str(rand(6))

num2str(pi,10)

num2str(pi,30)

S=int2str(X):将矩阵X中的元素取整后在转换为字符串矩阵

X=int2str(rand(6))

Y=num2str(rand(6),0) %这两个结果不同

X=int2str(S):将一个字符型矩阵S转换为数字矩阵

S=['1 2';'3 4']

X=str2num(S)

字符型矩阵S中的元素必须为ASCII码中的数字字符,每个元素可以包括数字、小数点

以及数字前的+和-,也可以是指数形式的字符或复数型字符,如果字符串矩阵S中含有不在上述规定的元素,str2num(S)返回一个空矩阵,[X,OK]=str2num(S)将返回OK=0

str2num会产生边际效应,可以用str2double函数来避免边际效应的产生

str2num('1+2i') %1+2i

str2num('1 + 2i') %1+2i

str2num('1 +2i') %1和2i

str2double('1+2i') %1+2i

S=['s e';'3 4']

X=str2num(S)

[X OK]=str2num(S) %X为空矩阵,OK=0

X=str2double(S):将字符串矩阵转换为数字矩阵,字符规定同str2num,若S中含有不符合规定的元素,该函数返回NaN

X=str2double(C):将单元型字符矩阵C中的元素转换为双精度数值矩阵

str2double('123.45e7')

str2double('123+45i')

str2double('3.14159')

str2double('2.7i-3.14')

str2double({'2.71' '3.1415'})

str2double('1,200.34')

相关文档
最新文档