【Matlab基础】03. 字符串与结构语句
一、字符串
1. 字符串基本操作
字母、数字、特殊符号都是字符;一串连续的字符就是字符串。
字符串的一般形式为:
str =’a1 a2 …an’
n个字符,每个字符占1位存放成一个行向量,可以通过下标访问字符串的元素。
要存放多个字符串需要元胞数组。
字符串基本操作示例:
str1 = 'We''re going to study Matlab!'
% %必须英文状态下的单引号,单引号元素用两个单引号
L = length(str1) %返回字符串包含字符的个数
zhstr1 = '中文字符串示例!' %中文字符串,也是英文单引号
size(zhstr1)
C1 = {'Matlab 2010b includes data types:';
'Double array';
'Character array';
'and so on'} %元胞数组存放多个字符串
str1(16:20) = 'learn' %将str1的16-20字符替换为learn
str2=str1(16:20) %提取str1的16-20字符作为子串
str3 = str1(end:-1:1) %实现字符串的倒排
asc=double(str1); %将字符转化为ASCII码
str4=char(asc); % ASCII码转化为字符
upper(str1); %转化为大写
lower(str1); %转化为小写
2. 字符串函数
strcat(str1, str2,…)——将字符串str1, str2,…水平连接;
strvcat(str1, str2,…)——将字符串str1, str2,…竖直连接成字符串向量;
strcmp(str1,str2)——str1与str2相等返回1,否则返回0(区分大小写);
strcmpi(str1,str2)——str1与str2相等返回1,否则返回0(不区分大小写);
strncmp(str1,str2,n)——比较str1与str2前n个字符是否相等(区分大小写)
strncmpi(str1,str2,n)——比较str1与str2前n个字符是否相等(不区分大小写)
findstr(str1,str2)——在较长字符串中查找较短字符串出现的各个位置;
strfind(str1,key)——在字符串str1中查找字符串key出现的位置;
strmatch(key,strs)——检查多行的字符串strs,以列向量形式返回各行以字符串key开始的各个行号;
strrep(str1,str2,str3)——把str1中含有str2位置用str3替换;
num2str(A)——数值矩阵转换为字符串矩阵;
str2num(str)——字符串矩阵转换为数值矩阵;
mat2str(A)——转化为生成矩阵A的代码语句的字符串;
int2str(A)——整数矩阵转换为字符串矩阵,若不是整数则四舍五入;
blanks(n)——返回n个空格组成的字符串;
deblank(str)——删除字符串末尾的空格;
strtrim(str)——删除字符串开头、结尾的空格、制表符、换行符;
3. eval() 函数
将括号内的字符串视为语句并运行。比如,
eval('y=sin(pi/2)') 和 y=sin(pi/2)
等价;多在循环语句中使用,可以对多个名字有规则的变量或文件进行操作,比如
for k=1:3
eval(['y',num2str(k),'=',num2str(k^2),';'])
实现赋值y1=1, y2=4, y3=9.
二、控制语句
1.选择结构
(1) If语句
基本格式为:
if 条件1
语句;
elseif 条件2
语句;
else
语句;
end
注意 :① 判断条件不用加小括号;结尾必须用end来标识if语句结束;
② 某个逻辑条件为真,则执行且只执行下一条matlab语句(以“ ; ”结尾的)或 { } 中间的程序块。
(2)switch语句
switch 表达式