b.Matlab(字符串)
A、概念
1、一个字符串被视为一个行向量
2、字符串每一个字符包括空格,以ASCII码的形式存放与行向量中,字符是该字符串变量的一个元素
3、命名字符串变量
使用单引号来界定一个字符串
使用方括号连接多个字符串,成为一个新字符串变量
a='ssss' b='aaaa' c=[a b]
4、输入的字符串有单引号,则由两个连续的单引号表示
a='ss''ss'
5、计算字符串变量的长度(组成字符串的个数)
length指令
6、字符串和ASCII的相互转换
a、double指令,将字符串内容转换为ASCII
b、char指令,将ASCII码转换为字符串形式
a='a a a b''a'
a_ASCII=double(a)
b=char(a_ASCII)
B.判断一个变量是否是字符串变量
1、class函数,结果直接显示变量类型
chinese='加油' out=class(chinese)
2、ischar函数,结果显示0或者1,0表示不是字符串,1表示是字符串
chinese='加油' x=class+1 %字符串加1表示,每一个元素的ASCII都加1 out=ischar(x)
C.一个字符串数组变量存储多行字符串
1、使用二维字符数组
每个字符串的长度一样,否则短字符串结尾需要人为补齐空格
2、char命令
这个命令会自动补齐空格
a=char('aa','bb','ccc')
从二维字符串数组访问其中元素的时候,需要使用deblank指令清除字符串尾部的空格字符
a=char('aa','bb','ccc') a1=a(1,;) %第一行的全部元素 a2=deblank(a1)%清除元素尾部的空格字符 len1=length(a1) len2=length(a2)
D.字符串比较命令
strcmp 指令: 用于比较字符串的內容的异同
str1 = 'today'; str2 = 'tomorrow'; str3 = 'today'; out1 = strcmp(str1, str2) % 比较字符串 str1 和str2 % out1 = 0 %表示字符串 str1 和 str2不同 out2 = strcmp(str1, str3) % 比较字符串 str1 和str3 % out2 = 1 %表示字符串 str1 和 str2相同
E.字符串的元素标识(寻址)
1、一维串数组中,MATLAB按自左至右的次序用自然数数码(1,2,3…)标识字符串的位置
a='this is an example' size(a) a1=a(1:4)%前四个字符,this a2=a(end:-1:1)%字符串倒排 elpmaxe na si siht
2、将字符串中字母全都改成大写
a='AsDfGhJKlL' w=find(a>='a'&a<='z')%找出所有小写字母的位置 ascii_a=double(a)%产生ascii码 ascii_a(w)=ascii_a(w)-32%大小写字母的ascii差32 char(ascii_a)
F.练习
fc=1;
fs=100;
t=0:1/fs:1;
s=2*sin(2*pi*fc*t);
mtext1=char('周期=1s','幅值=2','频率=1HZ');
mtext2='\leftarrow sin(2\pi fct)';
figure
plot(t,s)
text(0.2,1,mtext1)%(横坐标,纵坐标,插入的值)
text(0.5,0,mtext2)
在图中的接近峰值处添加信息,如果在峰值处添加会挡住图像
clear,clc a=2; w=3; fs=100; t=0:1/fs:10; y=sin(w.*t).*exp(-a*t); [y_max,i_max]=max(y);%y看成是一个数组,取最大值给y_max,最大值的位置给i_max t_text=['t=',num2str(t(i_max))]; y_text=['t=',num2str(y_max)]; m_text=char('maximum',t_text,y_text); figure,plot(t,y),text(t(i_max)+0.3,y_max+0.05,m_text);