matlab strtrim函数,matlab 字符串处理函数

本文介绍了MATLAB中的字符串处理,包括创建、标识、ASCII码、字符串数组运算、替换查找、常用及特殊操作函数的使用,如strtrim、strrep、strfind等。

字符串数组主要用于可视化编程内容,如界面设计和图形绘制。

1.字符串变量的创建

字符变量的创建方法是:在指令窗口中先把待建的字符放在“单引号对”中,再按回车键。注意,该“单引号对”必须在英文状态下输入。这“单引号对”是MATLAB用来识别字符串变量所必须的。如:

>>a='This is an example.'

a =

This is an example.

>>msg = 'You''re right!' %创建带单引号的字符串

msg =

You're right!

2.字符串数组的标识

字符串变量的每个字符(英文字母、空格和标点都是平等的)占据一个元素位,在数组中元素所处的位置用自然数标识。如:

>>b=a(1:4) % 提出一个子字符串

b =

This

ra=a(end:-1:1) % 字符串的倒排

ra =

.elpmaxe na si sihT

又如:

>>A='这是一个算例。';

>>B=size(A) % 符号数组 A 的“大小”

B =

1 7

>>C=A([5 6]) % 提出一个子字符串

C =

算例

3.字符串的ASCII码

字符串的存储是用ASCII码实现的。指令abs和double都可以用来获取串数组所对应的ASCII码数值数组。指令char可把ASCII码数组变为串数组。如

>>d=double(a)

d =

84 104 105 115 32 105 115 32 97 110 32 101 120 97 109 112 108 101

46

>>char(d)

ans =

This is an example.

对字符串ASCII码数组的操作:使字符串中字母全部大写

>>w=find(a>='a'&a<='z'); %找出串数组a中,小写字母的元素位置。

>>d(w)=d(w)-32; %大小写字母ASCII值差32用数值加法改变部分码值。

>>char(d) %把新的ASCII码翻成字符

ans =

THIS IS AN EXAMPLE.

4.字符串数组的运算

>>Aa=[A,a]

Aa =

这是一个算例。This is an example.

>>name = strcat('Thomas',' R.',' Lee')

%连接两个字符串,每个字符串最右边的空格被裁切

name =

Thomas R. Lee

>>D=strvcat('Hello','Yes','No','Goodbye') %利用串操作函数创建多行串数组,

连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格, 使与最长字符串相等,会忽略空字符串。

D =

Hello

Yes

No

Goodbye

5.

字符串替换和查找

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指定的字符串前的部分和之后的部分,

6.常用字符串操作函数

blanks(n)—创建有n个空格组成的字符串

deblank(str)—裁切字符串的尾部空格

strtrim(str)—裁切字符串的开头和尾部的空格,制表,回车符

lower(str)—将字符串中的字母转换成小写

upper(str)—将字符串中的字母转换成大写

sort(str)—按照字符的ASCII值对字符串排序

num2str—将数字转换为数字字符串

str2num—将数字字符串转换为数字

mat2str—将数组转换成字符串

int2str—把数值数组转换为整数数字组成的字符数组

7.其他字符串操作函数

strcmp—比较两个字符串是否完全相等,是,返回真,否则,返回假

strncmp—比较两个字符串前n个字符是否相等,是,返回真,否则,返回假

strcmpi—比较两个字符串是否完全相等,忽略字母大小写

strncmpi—比较两个字符串前n个字符是否相等,忽略字母大小写

isletter—检测字符串中每个字符时否属于英文字母

isspace—检测字符串中每个字符是否属于格式字符(空格,回车,制表,换行符等)

isstrprop—检测字符每一个字符是否属于指定的范围.

8.字符串的显示和打印

>>g=’abcd’;

>> disp(g)

abcd

>>h=rand(2,2); %产生2*2随机阵

>>s=num2str(h) %把数值数组转换为串数组

s =

0.95013 0.60684

0.23114 0.48598

>>s_s=sprintf('%.10e/n',a) 数位科学记述串,每写一个元素就换行。

s_s =

9.5012928515e-001

2.3113851357e-001

6.0684258354e-001

4.8598246871e-001

>>fprintf('% .5g //',a) %以5位数位最短形式显示。不能赋值用。

0.95013/0.23114/0.60684/0.48598/

>>s_sscan=sscanf(s_s,'%f',[3,2]) %浮点格式把串转换成3*2数值数组。

s_sscan =

0.9501 0.4860

0.2311 0

0.6068 0

********************************

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, 可用来比较两个字符数组是否相同。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值