MATLAB中的字符串

1、(a)在MATLAB中字符串是用单撇号括起来的字符序列。

      (b) 每个字符串当作一个行向量,每个元素对应字符串中的每个字符。因此,在字符串矩阵中,每个字符串字符数要求相等(经常用空格来填充)。

       (c)字符串是以ASCII码形式存储的。abs和double函数可以用来获取字符串矩阵所对应的ASCII码矩阵,char函数可以把ASCII码矩阵转换为对应的字符串矩阵。

(1)

>> str1='Dragon_F1234ABC';
str2=str1(1:8)              %取出第1到第8个字符串
st3=str1(end:-1:1)          %字符串倒序排列
str4=strcat(str1,str2)      %合并字符串
L1=length(str1)             %计算字符串长度
n=strfind(str1,'123')       %在字符串str1中查找出字符串‘123’的起始位置
k=find(str1>='a' & str1<='z') %查出字符串中的小写字母
L2=length(k)                  %查出字符串中的小写字母的长度
str1(k)=str1(k)-('a'-'A');   %将字符串中的小写字母变成大写字母
char(str1)                   %打印出变化后的字符串

str2 =
Dragon_F
st3 =
CBA4321F_nogarD
str4 =
Dragon_F1234ABCDragon_F
L1 =
    15
n =
     9
k =
     2     3     4     5     6
L2 =
     5
ans =
DRAGON_F1234ABC

(2)

>> ch=['AB';'ab'];
   m=[65 66 67 68];
   abs(ch)
   double(ch)
   char(m)

ans =

    65    66
    97    98

ans =

    65    66
    97    98

ans =

ABCD


2、eval(t)函数:其中t为字符串,把字符串t的内容作为在MATLAB的语句来执行。

>> m1=3*pi;
m2='[pi,cos(m1)]';
y1=eval('m1')
y2=eval(m2)
y3=eval('pi')

y1 =
    9.4248
y2 =
    3.1416   -1.0000
y3 =
    3.1416


3、字符串中含有单撇号的需要用两个单撇号来表示。

>> char('my name''s DragonF')
   disp('my name''s DragonF')
   fprintf('my name''s DragonF')


ans =


my name's DragonF


my name's DragonF
my name's DragonF>> 


5、对于较长的字符串可以用字符串向量表示,即用方括号[ ]括起来。

>> m=pi/3;
 n=sin(m)+2;
disp(['The last value is ',num2str(n)])
The last value is 2.866


6、下面是从其它地方转的字符串处理函数:http://www.cnblogs.com/emanlee/archive/2012/09/13/2683912.html

matlab 字符串处理函数

% 字符串处理 
a='  a';b='b  b';c='cccc';m='' 
% 获取字符串长度 
length(a)     
% 连接两个字符串,每个字符串最右边的空格被裁切 
d=strcat(a,c)  
length(d) 
% 连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格 
% 使与最长字符串相等,会忽略空字符串 
e=strvcat(a,b,m) 
size(e) 
% char连接,空字符串会被空格填满 
f=char(a,b,m) 
size(f)

strcmp    比较两个字符串是否完全相等,是,返回真,否则,返回假 
strncmp    比较两个字符串前n个字符是否相等,是,返回真,否则,返回假 
strcmpi    比较两个字符串是否完全相等,忽略字母大小写 
strncmpi   比较两个字符串前n个字符是否相等,忽略字母大小写

isletter  检测字符串中每个字符时否属于英文字母 
isspace    检测字符串中每个字符是否属于格式字符(空格,回车,制表,换行符等) 
isstrprop  检测字符每一个字符是否属于指定的范围 
a='d sdsdsd 15#'; 
b=isletter(a) 
c=isspace(a)

% 字符串替换和查找   
strrep 进行字符串替换,区分大小写 
%   strrep(str1,str2,str3) 
%      它把str1中所有的str2字串用str3来替换

strfind(str,patten) 查找str中是否有pattern,返回出现位置,没有出现返回空数组 
findstr(str1,str2)   查找str1和str2中,较短字符串在较长字符串中出现的位置,没有出现返回空数组 
strmatch(patten,str) 检查patten是否和str最左侧部分一致 
strtok(str,char)     返回str中由char指定的字符串前的部分和之后的部分, 
mm='youqwelcome'; 
[mm1,mm2]=strtok(mm,'q')

blanks(n)            创建有n个空格组成的字符串 
deblank(str)          裁切字符串的尾部空格 
strtrim(str)          裁切字符串的开头和尾部的空格,制表,回车符

lower(str)           将字符串中的字母转换成小写 
upper(str)            将字符串中的字母转换成大写  
sort(str)              按照字符的ASCII值对字符串排序  

num2str         将数字转换为数字字符串 
str2num          将数字字符串转换为数字 
mat2str          将数组转换成字符串 
int2str          把数值数组转换为整数数字组成的字符数组

------------------------------

CELL数组中的字符串比较:

c=cell(2,1); 
c(1,1)=cellstr('xxx'); 
c(2,1)=cellstr('yyyyyyy'); 
strcmp(c{1,1},c{2,1});

------------------------------

isequal   Test arrays for equality, 可用来比较两个字符数组是否相同

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值