matlab字符串处理

@[TOC]matlab字符串处理


前言

在Matlab中,字符串是用单引号括起来的字符序列。


一、字符串的表示

字符串是用单引号括起来的字符序列。

>> xm = 'Online University'

xm =

Online University

>> xm(1:3)

ans =

Onl

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

>> 'I''m a student.'

ans =

I'm a student.

建立多行字符串,形成字符串矩阵。

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

ans =

3

例:建立一个字符串向量,然后对该向量做如下处理:
①取第1~5个字符组成的子字符串。
②将字符串倒过来重新排列。
③将字符串中的小写字母变成相应的大写字母,其余字符不变。
④统计字符串中小写字母的个数。

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

subch =

ABc12

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

9gF65e4321cBA

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

k =

     3     8    12

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

ch =

ABC1234E56FG9

>> length(k)

ans =

     3

二、字符串的操作

  1. 字符串的执行
    格式:eval(s)

    >> t = pi;
    >> m  = '[t,sin(t),cos(t)]';
    >> y = eval(m)
    
    y =
    
        3.1416    0.0000   -1.0000
    
  2. 字符串与数值之间的转换

    • abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。

    • char函数可以把ASCII码矩阵转换为字符串矩阵。

        >> s1 = 'MATLAB';
        >> a = abs(s1)
        
        a =
        
            77    65    84    76    65    66
        
        >> char(a+32)
        
        ans =
        
        matlab
      
  3. 字符串的比较
    有两种方法,利用关系运算符或字符串比较函数。

  • 关系运算符

       >> 'www0'>='W123'
      
      ans =
      
        1×4 logical 数组
      
         1   1   1   0
    
  • 字符串比较函数:
    ①strcmp(s1,s2):用来比较字符串s1和s2是否相等,相等返回1,否则返回0。
    ②strncmp(s1,s2,n):用来比较两个字符串前n个字符是否相等,相等返回1,否则返回0。
    ③strcmpi(s1,s2):在忽略字母大小前提下,比较字符串s1和s2是否相等,相等返回1,否则返回0。
    ④strncmpi(s1,s2,n):在忽略字母大小前提下,比较两个字符串前n个字符是否相等,相等返回1,否则返回0。

  1. 字符串的查找与替换
  • findstr(s1,s2):返回短字符串在长字符串中的开始位置。

  • strrep(s1,s2,s3):将字符串s1中的所有字符串s2替换为字符串s3。


你可能感兴趣的:(matlab,matlab,矩阵,线性代数)