【MATLAB】字符串处理

一、字符串的表示
在MATLAB中,字符串使用单引号括起来的字符序列。
例如:

>> xm='Central South University'

xm =

Central South University

>> xm(1:3)

ans =

Cen

若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示。
例如:

>> 'I''m a teacher.'

ans =

I'm a teacher.

建立多行字符串,形成字符串矩阵
如果是字符串不相等,需要用空格将字符元素较少的字符串补全。
例如:

>> ch=['abcdef';'123456'];
>> ch(2,3)

ans =

3

>> ch=['abcdef';'12345 ';]

ch =

abcdef
12345 

建立一个字符串向量,然后对该向量做如下处理:
示例:
1、取第1~5个字符组成的子字符串。

>> ch='ASD123asd';
>> subch=ch(1:5)

subch =

ASD12

2、将字符串倒过来重新排列

>> revch=ch(end:-1:1)

revch =

dsa321DSA

3、将字符串中的小写字母变成相应的大写字母,其余字符不变。

k的输出值是对应小写字母在字符串中的序号。*

>> k=find(ch>='a'&ch<='z')

k =

     7     8     9

统计字符串中小写字母的个数。

>> ch(k)=ch(k)-('a'-'A')

ch =

ASD123ASD

>> length(k)

ans =

     3

二、字符串的执行

eval函数
实际上是把字符串的的参数作为MATLAB命令来执行的,所以最后就是把一个向量赋给了变量y。

>> t=pi;
>> m='[t,sin(t),cos(t)]';
>> y=eval(m)

y =

    3.1416    0.0000   -1.0000

三、字符串与数值之间的转换
二者都可以用来获取字符串矩阵所对应的ASCLL码数值矩阵。
char函数可以把ASCLL码矩阵转换为字符串矩阵。
abs函数、char函数

>> s1='MATLAB';
>> a=abs(s1)

a =

    77    65    84    76    65    66

>> char(a+32)

ans =

matlab

四、字符串的比较
字符串的比较有两种方法:利用关系运算符或字符串比较函数。

关系运算符比较:两个字符串里的每一个字符依次按ASCLL值大小进行比较,比较的结果是一个数值向量,向量中的元素要么是1,要么是0。
例如:

>> 'www0'>='W123'

ans =

     1     1     1     0

你可能感兴趣的:(【MATLAB】字符串处理)