Matlab学习笔记 Day6
注:仅供学习使用,部分内容来自学校课程课件或网络,理性探讨。
1.字符串(help strings命令)
MATLAB中的字符串常量是用单引号括起来的,它实际上是一个行向量(字符型数组)。每个元素是一个字符,在内存中实际存储的是其ASCII码值,元素的标识方法和数值向量相同。
2.常用字符串函数 help strfun命令
(1)获取字符串基本信息
disp(x)/display(x):显示变量x的内容
class(x):以字符串的形式返回变量x的类型名
ischar(x):如果x是一个字符串则返回1,否则反回0
length(x):若x为字符串,则返回x的长度
isletter(x):逐个检查x每个元素是否为字母
isspace(x):逐个检查x的每个元素是否为空格
案例分析:
>> strA = 'Xiao Mu';
>> disp(strA),class(strA),ischar(strA),...
length(strA),isletter(strA),isspace(strA)
Xiao Mu
ans =
'char'
ans =
logical
1
ans =
7
ans =
1×7 logical array
1 1 1 1 0 1 1
ans =
1×7 logical array
0 0 0 0 1 0 0
(2)字符串的基本操作(一些常见操作)
strcat(s1,s2,…,sn):连接字符串,得到新字符串
strvcat(t1,t2,…,tn):垂直连接字符串,得到字符串矩阵
strmatch(S1,S2):逐行搜索字符串矩阵s2,给出以s1开头的行号
findstr(s1,s2):查找s1在s2中出现的位置
strfind(s1,s2):在s1中查找s2出现的位置
strrep(s1,s2,s3):把字符串s1的所有出现s2的地方替换为s3
strtok(s):查找字符串S的第一个间隔符前的内容
blanks(n):生成含有n个空格的字符串
deblank(s):返回删除字符串S尾部空格得到的字符串
3.字符串比较函数
strcmp(S1,S2):比较字符串是否相等,相等返回1,反之0;
strcmpi(s1,s2):忽略大小写比较字符串是否相等。
strncmp(s1,s2,n):比较两个字符串前n个字符是否相等。
strncmpi(s1,s2,n):忽略大小写比较字符串s1和s2前n个字符是否相等
4.字符串转换函数
upper(A): 把字符串A中所有小写字母转换为大写字母
lower(A):把字符串A中所有大写字母转换为小写字母
double(x):把字符串x转换为double型数组(ASCII码)
char(X):把ASCII码转换为字符串
int2str(x):把整数x转换为字符串
num2str(X):将数值x转换为字符串
str=mat2str(MAT):将数值矩阵转换为字符串形式
eval(expstr):执行字符串
5.字符串生成函数
str=sprintf(format,data1,…datan)
按第一个输入参数format的指定格式,输出变量,将输出的内容作为字符串S。
>> str=sprintf('The value of pi is %8.6f',pi)
str =
'The value of pi is 3.141593'
6.元胞数组
在一个元胞数组的不同元胞中可以存放不同类型、不同长度的数据。
(1)元胞数组的建立与显示
直接输入整个元胞数组:
>> s={'north','east','south','west'};
>> a={'this is the first example',hadamard(2);ones(3),s}
a =
2×2 cell array
{'this is the first example'} {2×2 double}
{3×3 double } {1×4 cell }
(2)元胞与元胞中内容的标识与显示
元胞数组维数不受限制;元胞数组对元胞编址的方法也有单下标和全下标;“元胞”和“元胞中的内容”是两个不同的范畴,例如a(1,2)指的是元胞数组a中第一行第二列的胞元素(类似于存放物品的格子及内容物),而a{1,2}是元胞数组a中第一行第二列元胞中的内容(仅是格子中存放的内容物)。
(3)通过元素赋值法创建元胞数组
>> A{1}='This is the first string';
A{2}='This is the second string';
A{3}=rand(3);
>> A
A =
1×3 cell array
{'This is the fir…'} {'This is the sec…'} {3×3 double}
元胞数组的显示函数有:
celldisp( C ):显示元胞数组C的所有内容
cellplot( C ):以嵌套的格子的形式显示元胞数组C有元素的结构
仍然以上述A为例
>> celldisp(A)
A{1} =
This is the first string
A{2} =
This is the second string
A{3} =
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
>> cellplot(A)
(弹窗)
(4)cell函数
建议先采用cell函数创建空的元胞数组,然后再对元胞元素的元素赋值。
A=cell(N) 创建空的NXN的元胞数组
A=cell(M,N)或A=cell([M,N]) 创建空的MXN的元胞数组