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(2pi 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);

  

原文地址:https://www.cnblogs.com/zhaojiayu/p/13810223.html