MATLAB-字符串
- 字符(Characters)可以构成一个字符串 (Strings),或字符数组(character array)。
- 一个字符串是被视为一个行向量(row vector)。
- 字符串中的每一个字符(含空格),以其 ASCII 码的形式存放于行向量中,是该字 符串变量的一个元素(element)。
字符串的生成
Matlab 用「单引号」来界定一个字符串:
字符串可以由单引号创建,如果字符串内部包含单引号,则需要在单引号位置输入两个连续的单引号,否则系统报错。
1、直接创建
2、字符串合成
- 可以使用方括号“[ ]”直接连接多个字符串变 量,得到一个新字符串变量。
字符串的操作
字符串的转换函数汇总
函数名 | 作用/返回内容 |
---|---|
size | 返回字符串规格 |
length | 计算字符串变量的长度 |
abs | 字符串到ASCII转换 |
dec2hex | 十进制数到十六进制字符串的转换 |
fprintf | 将格式化的文本print |
hex2dec | 十六进制字符串转换成十进制数 |
hex2num | 十六进制字符串转化成IEEE浮点数 |
int2str | 整数转化成字符串 |
lower | 字符串小写 |
num2str | 数字转化成字符串 |
setstr | ASCII转换成字符串 |
sprintf | 用格式控制,数字转换成字符串 |
sscanf | 用格式控制,字符串转换成数字 |
str2mat | 字符串转换成一个文本矩阵 |
str2num | 字符串转换成数字 |
str2double | 字符串转换成double |
upper | 字符串大写 |
1、显示
字符串的显示:直接显示和利用disp函数显示
2、执行字符串
字符串的执行:利用eval函数执行字符串,同python的eval函数,去掉字符串的引号使其成为可执行语句。
3、字符串的判断class/ischar
class 或 ischar 指令: 可以用来判断一个变量的类 型或它是否为字符串变量。
- class(), 返回括号内数据类型
- ischar(),若不是字符串,则返回0.
字符串是一个ASCII码的字符数组,因此与普通数组一样, 字符串也可以形成矩阵。但是这些行必须具有相同数目的列数。
使用char函数可以创建长度不一致的字符串矩阵。char 函数自动将所有字符串的长度设置为输入字符串中长度的 最大值;
在从数组中提取字符串时,可以利用deblank函数自动删 除char函数添加的空格;
字符串的运算
运算函数汇总
函数名 | 作用 | 函数名 | 作用 |
---|---|---|---|
strcat | 横向连接字符串 | strvcat | 纵向连接字符串 |
strcmp | 字符串比较 | strncmp | 比较字符串的前n个字符 |
findstr | 字符串查找 | strjust | 字符串对齐 |
strmatch | 字符串匹配 | strrep | 字符串查找与替换 |
strtok | 选择字符串中的部分 | blanks | 创建由空格组成的字符串 |
deblank | 删除字符串结尾的空格 | ischar | 判断变量是否为字符串 |
iscellstr | 判断字符串单元数组 | strings | MATLAB字符串句柄 |
isspace | 判断是否空格 ,是则返回1,否则返回0 | isletter | 判断字符串的字符是否是字母 ,是则返回1,否则返回0 |
字符串的比较:strcmp, strncmp,Matlab运算法则
字符数组进行比较时,比较的是ASCII码值。返回 结果为一个数值向量,元素为对应字符比较的结果。
strcmp(str1,str2): 比较字符串str1和str2是否相同,若相 同返回1,否则返回0;当所比较的两个字符串是单元字符数 组时,返回值为一个列向量,元素为相应行比较结果。
strncmp(str1,str2,n): 比较字符串str1和str2的前n个字符 是否相同,若相同返回1,否则返回0。当所比较的是两个单元数组 时,返回值为列向量,元素为相应行的比较结果。
当两个字符串拥有相同的维数时,可以利用 MATLAB运算法则(==, ~=, <, >, <=, >=)比较两个字符串。
字符串的查找和替换
字符串的查找函数:findstr, strmatch, strrep, strtok
findstr(str1,str2)
用于在一个字符串中查找子字符串,执行时系统首先判断两个字符串的长短,然后在长的字符串中检索短的子字符串。 返回位置。
sterep(str1,str2,str3)
将字符串str1中的所有子字符串str2替换为str3。
strmatch(str1,str2)
寻找str1是否匹配str2的开头部分字符串, 返回str1在str2中匹配的位置
strmatch(‘str’, STRS,’exact’)
寻找str1是否完全匹配str2,返回 str1在str2中匹配的位置
strtok()
选取字符串的一部分,简单用法为strtok(str)