MATLAB字符串数组

MATLAB字符串数组

基本规则
(1)所有字符串都用单引号(英文状态下输入)括起来;
(2)将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。
(3)size指令获得串数组的大小。串中的每一个字符,包括中英文字符、空格、标点都算一个元素。
(4)字符串中的字符以ASCⅡ码形式存储,因而区分大小写
(5)可建立多行字符串,形成字符串矩阵。
例如

String1='welcome to matlab!'		%单引号括起来
String1 =
    'welcome to matlab!'
String1='9527 welcome to matlab !! '	
size(String1)

String1 =

    '9527 welcome to matlab !! '		%包含数字,字母,标点符号,空格

ans =

     1    26					%长为26
ch=['abcdef';'123456']   	 %建立多行字符串,形成字符串矩阵
ch(2,3)


ch =

  2×6 char 数组				%建立的2行6列的字符串矩阵

    'abcdef'
    '123456'

ans =					%第2行3列的元素为'3'

    '3'

abs和double指令可以显示字符数组对应的ASCII码数值数组。char指令则可以把ASCII码数值数组转换成字符数组。

s1='MATLAB';
a=abs(s1)			%将字符数组转化为ascll码值数组
b=double(s1)
char(a)				%将ascll码值数组转化为字符数组

%输出如下
a =

    77    65    84    76    65    66
    
b =

    77    65    84    76    65    66

ans =

    'MATLAB'

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

clc;
ch='ABc123d4e56Fg9' ;
subch=ch(1:5)           %取子字符串
revch=ch(end:-1:1)       %将字符串倒排
k=find(ch>='a' & ch<='z')  %找小写字母的位置
ch(k)=ch(k)-('a'-'A')   	 %小写字母变成大写
length(k)      			 %统计小写字母的个数

对于上述例题的解释
1.找出的是小写字母的位置,结果输出为3 7 9 13,即在第3 7 9 13的位置是小写字母

k=find(ch>='a' & ch<='z')  %找小写字母的位置

2.提出小写字母,输出结果为ans = ‘CDEG’

ch(k)		%将小写字母位置上的小写字母提出
ch(k)-('a'-'A')			
%将找出的小写字母,ascll码值减去32(即大小写字母的ascll码值差),转换成大写字母
当两个字符串数组进行关系比较时,是将其对应位置的字符的ascll码值进行比较

字符处理函数及其含义

函数名含义
setstr将ASCII码值转换成字符
char同上,将代替setstr
mat2str将矩阵转换成字符串
int2str将整数转换成字符串
num2str将数值转换成字符串
str2num将字符串转换成数值
strcat用于字符串的连接
abs将字符转换成ASCII码
eval把字符串的内容作为对应的命令来执行
findstr(s1,s2)返回短字符串在长字符串中的开始位置
strrep(s1,s2,s3)将字符串s1中的所有子字符串s2替换为字符串s3
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

具体参数内容可输入help进行查看

    原文作者:路遥芝麻
    原文地址: https://blog.csdn.net/luyaozhima/article/details/107099600
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞