-
字符串的定义
>> str='今天,是2018年11月23日, 我们班一起去上海旅游。'
-
下标访问字符串
>>str(1)
今
>>str(3)
,
3、字符串的运算
符 号 形 式 |
符 号 意 义 |
英 文 简 写 |
== |
等于 |
eq |
~= |
不等于 |
ne |
< |
小于 |
lt |
> |
大于 |
gt |
<= |
小于或等于 |
le |
>= |
大于或等于 |
ge |
4、字符串的分类
可以用isletter和isspace两个函数来对字符串中的字符进行分类 。
Isletter(str)用来判断字符串str中的每个字符是否是字符:
>> str = 'A12 ,as,1234213,Yu';
>> isletter(str)
ans =
1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1
4.2isspace函数
isspace(str)函数用来判断字符串str中每个字符是否是空格.
str = '12ac3c a, a';
>> isspace(str)
ans =
0 0 0 0 0 0 1 0 0 1 1 0
5、字符串与数值的转换
函 数 |
功 能 |
函 数 |
功 能 |
upper |
改该字符串为大写 |
lower |
改该字符串为小写 |
fprintf |
把格式化的文本写到文件中或显示屏上 |
sprintf |
用格式控制,数字转换成字符串 |
sscanf |
用格式控制,字符串转换成数字 |
char |
ASCII码转换成字符串 |
num2str |
数字转换成字符串 |
int2str |
整数转换成字符串 |
char |
生成字符串数组 |
int2str |
整数转换为字符串 |
mat2str |
矩阵转换为字符串 |
num2str |
数值转换为字符串 |
sprintf |
格式输出字符串 |
sscanf |
格式读入字符串 |
str2double |
字符串转换为双精度 |
str2num |
字符串转换为数值 |
6、比较两个字符串
使用strcmp()函数,当两个字符串相等时返回1,否则返回0.
>> strcmp('12','012')
ans =
0
>> strcmp('12wq','12wq')
ans =
1
7、单元数组(cell)输出及转换为字符串
(1)单元数组输出:celldisp(A);%A为单元数组
(2)单元数组转换为字符串:用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组,要想将其转换称字符型则可以利用char()函数.例:
>> t = {'20','001101'};
>> char(t{1})
ans =
20
8、字符串转换为数字
Double()是将字符串的每个字符转换称ASCII,而str2num()函数是将字符串直接转换成数字.
>> s ='012';
>> res = double(s)
res =
48 49 50
>> str2num(s)
ans =
12
9、取出字符串的子串
>> str = '0001111012';
取出str的前5个字符
>> str(1:5)
ans =
00011
取出str后的5个字符
>> str(end-5:end)
ans =
111012
取出str的后5个字符
>> str(numel(str)-5:numel(str))
ans =
111012
10、字符串连接
(1)方法一:
在MATLAB中,字符串的联接十分方便,其一般格式为:
[字符串变量1,字符串变量2,'字符集1', '字符集2',…]
例如:若键入['圆周率为',num2str(pi)],屏幕上显示出
ans =
圆周率为3.1416
(2)方法二
使用函数strcat.
>> str1 = '0111';
>> str2 = '333390';
>> strcat(str1,str2)
ans =
0111333390
11、替换字符串的某几位
替换字符串的后三位:
>> str = '0110999';
>> str(end-2:end)='112'
str =
0110112
12、从字符串读取数据
使用strread函数可以从字符串中读取数据,使用格式:
[a,b,c,…] = strread(cstr,’format’,’param’,’value’) ;
示例:
>> t = '12.6,x2y,z';
>> [a,b,c] = strread(t,'%f%q%q','delimiter',',') ;
>> a
a =
12.6000
>> b
b =
'x2y'
>> c
c =
'z'
注:
- 对于第二个参数中,%f表示浮点数,%q表示字符串;
- 第三个参数为’delimiter’表示format中识别的项将由value中指定的字符分割(此处为’,’).
- 结果中的b,c变量输出均带有单引号,表示为单元(cell)数组.
13、其它字符串函数
函 数 名 |
函 数 用 途 |
函 数 名 |
函 数 用 途 |
strvcat |
垂直链接字符串 |
strncmp |
比较字符串的前n个字符 |
findstr |
在其他的字符串中寻找该字符串 |
strrep |
用其他字符串代替改串 |
symvar |
寻找字符串表达式中的变量(除了i,j,pi,inf,nan,eps以及通用函数 的其他标识符),如果没有找到变量则返回空单元数组{} |
blanks |
生成空的字符串 |
deblank |
删除字符串内的空格 |
ischar |
字符串检验 |
iscellstr |
字符串的单元检验 |
isletter |
字母检验 |
isspace |
空格检验 |
strings |
strings函数的帮助 |
deblank |
去掉字符串末尾的空格 |
lower |
转换为小写 |
strcmpi |
字符串比较(忽略大小写) |
strjust |
调整字符串排列位置 |
strrep |
寻找和替代 |
strtok |
寻找字符串中第一个空字符前边的字符串×× |
texlabel |
将字符串转换为Tex格式(推荐理科同学掌握Latex) |
upper |
大写 |