首页 > 代码库 > Matlab实现字符串分割

Matlab实现字符串分割

Matlab实现字符串分割(split)

Matlab的字符串处理没有C#强大,本身又没有提供OO特性,需要依赖别的手段完成这项任务。


我们在这里借助正则表达式函数regexpsplit模式。一般语法:
S = regexp(str, char, ‘split‘)

其中str是待分割的字符串,char是作为分隔符的字符(可以使用正则表达式)。分割出的结果存在S中。

以下面这样一串字符为例

Hello Nocturne Studio


首先去除首尾的多余空格:
str = deblank(str)

1:设这几个字符串是以制表符分隔的,可以这样来做:
S = regexp(str, ‘\t‘, ‘split‘)


2:设这些字符串是以一个或多个空格分隔的,可以用正则表达式来描述:
S = regexp(str, ‘\s+‘, ‘split‘)


这样,S(1)=’Hello’S(2)=’Nocturne’S(3)=’Studio’

注意,上面得到的结果S是一个cell型变量,它的每个元素比如S(1)仍然是cell型的,只能用来display,不能直接用来进行字符串操作(比如获取其中的某个字符),所以我们在使用需要执行一次:
s1 = char(S(1))

这样的s1才是一个真正的字符串,可以进行后续的操作。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

补充一: Matlab中字符型到数值型转换函数 str2num(data);

例如:

> str2num(‘0.00682392‘)

 ans =

0.0068

补充二: Matlab中显示精度函数format long;

只改变显示格式,并不会影响实际内存中的数据精度,不会产生精度降低的问题

例如 (接上一个例子)

> format long

> str2num(‘0.00682392‘)

>ans=

0.006823920000000

> format short

>str2num(‘0.00682392‘)

>ans=

0.0068

 

 

Matlab实现字符串分割