matlab 字符串处理(单引号 拼接 char)

本文介绍了MATLAB中处理包含单引号的字符串方法,使用双单引号标识。还讲解了字符串拼接、char函数、字符串比较、deblank函数、字符串切割与strfind()的应用。分享了字符串操作的实战技巧。

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

                       

1. 字符串中含有单引号

我们知道,matlab 中一个字符串由单引号标识,如果一个字符串中本身含有单引号,比如xi'an(地名,西安),使用转义符是不奏效的。matlab 提供的做法是,双单引号标识一个单引号:

>> addr = 'xi''an'addr =xi'an
  
  • 1
  • 2
  • 3

2. 字符串拼接

  • []进行的是字符串的拼接;
  • {}定义的则是元祖

这涉及到 matlab 的编程设计思想问题,也即 matlab 是围绕矩阵展开的,而 matlab 下的矩阵必须是数值型的,而不可以是字符串矩阵,想要定义一个结构来存放多个字符串,可以使用 {},而不可以使用构建matlab 矩阵)[](等价于 strcat)。

3. 使用 char

>> asc = char(reshape(32:127,32,3)')asc = !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   % 3 行 32 列,96 个字符
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

char() 函数接受多参数时,也即

S = char(T1,T2,...,TN)
  
  • 1

将会构建 char 型二维矩阵(使用矩阵的方式进行索引),行数为参数的个数,列数为单个参数的最大长度。

4. 字符串比较

  • strcmp()
  • strcmpi():大小写不敏感,case insensitive;

5. deblank

Remove trailing whitespace from end of character array. (删除序列尾部(注意仅仅是尾部,不包括头部的空格)的空格)。

6. 字符串切割(split)

使用正则表达式:

>> str = 'hello world hello China';>> splited = regexp(str, ' ', 'split');>> splitedsplited =     'hello'    'world'    'hello'    'China'
  
  • 1
  • 2
  • 3
  • 4
  • 5

注意 regexp(str, ' ', 'split') 得到的是元组类型。

7. strfind():返回元素的下标

>> strfind('hello|world', '|')6
  
  • 1
  • 2

8. char ⇔   ⇔           ⇔ ⇔ ⇔      \Leftrightarrow        char
>> char([97, 98, 99])ans =abc
   
  • 1
  • 2
  • 3
  • 4
  • (2)char ⇒ ASCII

    >> abs('abc')ans =    97    98    99
        
    • 1
    • 2
    • 3
    • 4

9. 字符串的拼接

字符串(str1、str2)的拼接使用 [str1, str2] 或 [str1 str2]。
注意,str1 + str2 所做的动作就不是拼接了,而是首先转换为 ascii 码类型,再进行相加的操作,这就要求两串的长度必须相等,

>> str1 = 'hello'; str2 = 'world';>> str1 + str2 ans =   223   212   222   216   211>> abs(str1) + abs(str2)ans =   223   212   222   216   211
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
           

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值