matlab第6章字符串处理.ppt
文本预览下载声明
第七章 字符串处理 ;7.1字符阵列;一、字符与ASCII码之间的变换
利用double函数和char函数可实现在字符与其ASCII码之间进行变换。
例如:
name=‘河北大学’ %字符串
a=double(name) %转变为ASCII码
name=char(a) %ASCII码转变为字符
;二、建立二维字符阵列
注意:建立二维阵列时,应注意确保每行上的字符数相等,如果长度不等,应在其后补空格。可以利用blanks(n)函数来添加空格。利用deblank函数可以删除字符串末尾多余的空格。
例如:
s1=‘welcome to hebei university ’
s2=‘you are welcome to my hometown’
s=[s1blanks(3);s2]
;
7.2 字符串单元阵列
字符串单元阵列中每个元素均为字符串,而且已经删除了末尾的空格。
1.利用cellstr函数可以方便的将字符阵列变换成字符串单元阵列
例如:
cell=cellstr(s)
2.利用char函数可以进行反变换
例如:s=char(cell)
;7.3字符串比较;7.3字符串比较;例如:
s1=‘help’,s2=‘hello’,s3=‘Hello’
k1=strcmp(s1,s2)
则k1=0
k2=strcmpi(s1,s3)
则k2=1
二、比较字符是否相同
利用关系操作符。
;三、英文字母的检测
isletter函数和isspace函数,返回结果为(1)或假(0)。
例如:s=‘hebei 2004’
letter=isletter(s)
space=isspace(s)
;7.4 字符串搜索与取代
利用findstr(查找某个字符串)
strmatch(字符串匹配)
strrep(修改字符串)
strtok(提取字符串的首部)
等函数可以完成字符串的搜索与取代
例如:
function allwords=words(sentence)
r=sentence
allwords=‘’;
While(any?)
[w,r]=strtok(r)
Allwords=strvcat(allwords,w)
;7.5 字符串与数值之间的变换
常用的有
int2str(数值转换为字符)
num2str(含有小数的数值转换为字符)
bin2dec(二进制转换为十进制)
hex2dec(十六进制转换为十进制)base2dec(三进制转换为十进制)
dec2base(十进制转换为三进制);7.7字符串函数;7.7字符串函数;7.7字符串函数;7.7字符串函数;例1 混合频率信号成分分析,有一信号x由三种不同频率的正弦信号混合而成,通过得到信号的DFT,确定出信号的频率及其强度。程序如下
t=0:1/119:1;
x=5*sin(2 * pi * 20 * t)+3*sin(2 * pi * 30 * t)+sin(2 * pi *45 * t);
y=fft(x);
m=abs(y);
f=(0:length(y)-1)’*119/length(y);
figure(1)
Subplot(2,1,1),plot(t,x),grid on
title(‘多频率混合信号’)
;ylabel(‘Input\itx’),xlabel(‘Time’)
subplot(2,1,2),plot(f,m)
ylabel(‘Abs.Magnitude’),grid on
xlabel(‘Frequency (Hertz)’)
显示全部