MATLAB入门(十四)

技术 · 2019-01-09 · 35 人浏览

字符串

直接赋值输出

输入:

s='matlab';
s

输出:

s =

    matlab

利用disp输出

输入:

s='matlab';
disp(s);

输出:

matlab

输出字符串中的某个值

输入:

s='matlab';
s(2)

输出:

ans =

    a

创建单行字符串

输入:

s1='MATLAB';
s2=' is ';
s3='a very good ';
s4='software.';
s=[s1 s2 s3 s4];
disp(s);

输出:

MATLAB is a very good software.

使用strcat函数创建单行字符串

  • 语法格式

    • strcat(子串1,子串2,…,子串n)—最右侧空格会被删掉

输入:

s1='MATLAB';
s2=' is';
s3=' a very good';
s4=' software.';
s=strcat(s1,s2,s3,s4);
disp(s);

输出:

MATLAB is a very good software.

使用[]创建多行字符串

输入:

s1='MATLAB ';
s2='is ';
s3='a very good ';
s4='software.';
s=[s1,s2,s3,s4];
disp(s);

输出:

MATLAB is a very good software.

输入:

s1='MATLAB     ';
s2='is         ';
s3='a very good';
s4='software.  ';
s=[s1;s2;s3;s4];
disp(s);

输出:

MATLAB     
is         
a very good
software.

使用strvcat函数多行创建字符串

  • 语法格式

    • strvcat(子串1,子串2,…,子串n)

输入:

s1='MATLAB';
s2='is';
s3='a very good';
s4='software.';
s=strvcat(s1,s2,s3,s4);
disp(s);

输出:

MATLAB     
is         
a very good
software.

使用char函数创建多行字符串

  • 语法格式

    • char(子串1,子串2,…,子串n)

输入:

s1='MATLAB';
s2='is';
s3='a very good';
s4='software.';
s=char(s1,s2,s3,s4);
disp(s);

输出:

MATLAB     
is         
a very good
software.

字符串比较函数

  • strcmp(a,b)—比较字符串a,b是否完全相同
  • strcmpi(a,b)—比较字符串a,b在忽略大小写的情况下是否完全相同
  • strncmp(a,b,n)—比较字符串a,b的前n个字符是否完全相同
  • strnmpi(a,b,n)—比较字符串a,b在忽略大小写的情况下前n个字符是否完全相同

输入:

s1='MATLAB';
s2='matlab';
s3='matlab is very good.';
s4='MATLAB';
strcmp(s1,s2)
strcmp(s1,s3)
strcmp(s1,s4)

输出:

ans =

     0


ans =

     0


ans =

     1

输入:

s1='MATLAB';
s2='matlab';
s3='matlab is very good.';
s4='MATLAB';
strcmp(s1,s2)
strcmpi(s1,s2)

输出:

ans =

     0


ans =

     1

输入:

s1='MATLAB';
s2='matlab';
s3='matlab is very good.';
s4='MATLAB';
strncmp(s1,s4,6)
strncmp(s1,s3,6)

输出:

ans =

     1


ans =

     0

输入:

s1='MATLAB';
s2='matlab is very good.';
strncmp(s1,s2,6)
strncmpi(s1,s2,6)

输出:

ans =

     0


ans =

     1

使用==完成字符串比较

  • 不同维度的字符串不可以进行比较
  • 单个字符可以和字符串进行比较

输入:

s1='Matlab';
s2='matlab';
s1==s2

输出:

ans =

     0     1     1     1     1     1

输入:

s1='m';
s2='matlab';
s1==s2

输出:

ans =

     1     0     0     0     0     0

输入:

s1='a';
s2='matlab';
s1==s2

输出:

ans =

     0     1     0     0     1     0

使用strfind完成字符串查找

  • 语法:

    • strfind(string,pattern)
    • 查找字符串string内,是否包含pattern子串
    • 如果包含返回子串位置
    • 不过不包含返回空数组

输入:

s1='matlab';
s2='matlab is very good.';
strfind(s2,s1)

输出:

ans =

     1

输入:

s1='very';
s2='matlab is very good.';
strfind(s2,s1)

输出:

ans =

    11

输入:

s1='a';
s2='matlab is a very good software.';
strfind(s2,s1)

输出:

ans =

     2     5    11    28

输入:

s1='MATLAB';
s2='matlab is a very good software.';
strfind(s2,s1)

输出:

ans =

     []

使用strrep完成字符串替换

  • 语法:

    • sNew=strrep(s,s1,s2)
    • 把字符串s中的s1替换为s2.
    • 要有返回值
    • 该函数区分大小写
    • 有几个换几个

输入:

s='matlab is a very good software.';
s1='matlab';
s2='PS';
sNew=strrep(s,s1,s2);
disp(sNew);

输出:

PS is a very good software.

使用int2str把数值数组转换为字符数组

  • 语法:

    • s=int2str(n)
    • 把数值数组转换成有数字组成的字符串

输入:

x=66;
y=int2str(x);
whos

输出:

  Name      Size            Bytes  Class     Attributes

  x         1x1                 8  double              
  y         1x2                 4  char    

输入:

x=[4 5 7 9];
y=int2str(x);
whos

输出:

  Name      Size            Bytes  Class     Attributes

  x         1x4                32  double              
  y         1x10               20  char  

输入:

a='matlab';
b=2017;
b=num2str(b);
c=[a b];
disp(c);

输出:

matlab2017

使用str2num将字符串转换为数字

输入:

s='2017';
n=str2num(s);
whos

输出:

  Name      Size            Bytes  Class     Attributes

  n         1x1                 8  double              
  s         1x4                 8  char  

输入:

s='2017';
n=str2double(s);
whos

输出:

  Name      Size            Bytes  Class     Attributes

  n         1x1                 8  double              
  s         1x4                 8  char   

字符串
Theme Jasmine by Kent Liao