matlab字符串数据

字符串的表示

一般字符串。

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

>> xm = 'Central South University'
xm =
    'Central South University'
>> xm(1:4)
ans =
    'Cent'

多行字符串,形成字符串矩阵:

>> ch = ['abcdef';'123456'];
>> ch(2:3)
ans =
    '1b'

建立一个字符串向量,然后对向量做如下处理:

(1)取第1~5个字符组成的子字符串。

(2)将字符串倒过来重新排列。

(3)将字符串中的小写字母变成相应的大写字母。

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

>> ch='ABc123d4e56Fg9';
>> subch = ch(1 : 5)
subch =
    'ABc12'
>> 
>> revch = ch(end:-1:1)
revch =
    '9gF65e4d321cBA'
>> k = find(ch >= 'a' && ch <= 'z')
|| 和 && 运算符的操作数必须能够转换为逻辑标量值。
>> k = find(ch >= 'a' & ch <= 'z')
k =
     3     7     9    13
>> ch(k) = ch(k) - 32
ch =
    'ABC123D4E56FG9'
>> length(k)
ans =
     4

字符串的操作

(1)字符串的执行

格式eval(s)// 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码矩阵转换成字符串矩阵。

>> s = 'MATLAB';
>> a = abs(s);
>> a
a =
    77    65    84    76    65    66
>> char(a + 32)
ans =
    'matlab'

(3)字符串比较

直接比较:

>> 'wucongrong' >= 'wangyuchen'
ans =
  1×10 logical 数组
   1   1   0   1   0   0   1   1   1   0

也可以同C语言一样,有4种比较方式,函数如下:

①strcmp(s1,s2):用来比较字符串sl和s2是否相等,如果相等,返回结果为1,否则返回0。

②strncmp(s1,s2,n)∶用来比较两个字符串前n个字符是否相等,如果相等,返回1,否则返回0。

③ strcmpi(s1,s2):在忽略字母大小写前提下,比较字符串s1和s2是否相等,如果相等,返回1,否则返回0。

④strncmpi(s1,s2.n):在忽略字符串大小写前提下,比较两个字符串前n个字符是否相等,如果相等,返回1,否则返回0。

 (4)字符串的查找与替换

①findstr(s1,s2):返回短字符串在长字符串中的开始位置;

>> s1 = 'ng';
>> s2 = 'wucongrong';
>> findstr(s1,s2)
ans =
     5     9

②strrep(s1,s2,s3):将字符串中的所有子字符串s2替换为字符串s3;

>> s1 = 'wucongrong';
>> s2 = 'ng';
>> s3 = '1';
>> strrep(s1,s2,s3)
ans =
    'wuco1ro1'

  

posted @ 2021-07-20 10:39  荣荣荣荣荣荣  阅读(504)  评论(0)    收藏  举报