一起来学matlab-matlab学习笔记10

10_5 通用字符串操作和比较函数

觉得有用的话,欢迎一起讨论相互学习~Follow Me

参考书籍

《matlab 程序设计与综合应用》张德丰等著 感谢张老师的书籍,让我领略到matlab的便捷

《MATLAB技术大全》葛超等编著 感谢葛老师的书籍,让我领略到matlab的高效

将整数数组转换成字符串

  • s=string(A)

    • 其中A为正整数数组,这个函数的作用是将一个整数数组转换成字符串矩阵,字符串中的字符ASCII码即是A中相应的元素值。
    • 也可以通过string()函数将任意正整数矩阵转换成相应的字符串矩阵。

将ASCII码转换成字符串

(1)char(A):此函数将由正整数组成的矩阵转换成字符串矩阵,矩阵的元素一般要在0-65535之间,超出这个范围的是没有定义的,但也可以显示出结果,只是系统会给出超出范围的警告。

(2)s=char(C):如果C是由字符串组成的单元阵,此函数将单元阵C转换成字符串矩阵,字符串矩阵的每行就是单元阵的每个元素,且用空格将每个字符串补齐,以保证字符串矩阵的合法性。也可以用cellstr()函数将一个字符串矩阵转换为一个字符串单元阵。

(3)s=char(sl,s2,s3,...)此函数以各个字符串是s1,s2,s3,...为每行构成字符串矩阵S,并自动以适当的空格追加在较短的字符串的后面,使各行的字符串的字符个数相同,以构造合法的字符串矩阵。参数中的空字符串也会被空格填充为相同大小的空格字符串。

  1. char(65537)
  2. s={'My' 'name' 'is' 'hello'}
  3. k=char(s)
  4. cellstr(k)
  5. ans =
  6. ￿ % 这个是越界了的输出的不知道是什么鬼东西
  7. s =
  8. 'My' 'name' 'is' 'hello'
  9. k =
  10. My
  11. name
  12. is
  13. hello
  14. ans =
  15. 'My'
  16. 'name'
  17. 'is'
  18. 'hello'

将字符串转换成ASCII码

  • abs(S) S为字符串,此函数返回S的每个字符的ASCII码,结果是一个整数矩阵,可以当做一般的矩阵处理
  • double(S) 此函数作用与abs(S)有相同之处,它是将符合矩阵或字符串转换成双精度的浮点数组组成的矩阵。

输入空格符

  • blanks(n)用于输出n个空格。此函数在调整输出格式,要输出多个空格时十分有效,可以精确地输出需要的空格。通常与disp()函数联用,对输出格式进行调整。

将字符串进行大小写转换

  • upper(S):将字符串或者字符串矩阵S中的所有小写字母转换成大写,原有的大写字母保持不变
  • lower(S):将字符串或字符串矩阵S中的所有大写字母转换成小写,原有的小写字母保持不变

将字符串作为命令执行

  • a=eval('字符串表达式')

    此函数返回由字符串表达式执行的结果,可以将各个不同部分放在"[]"内以形成一整条命令。这个函数在M文件中进行交互式命令时很有用。

  1. format compact
  2. for i=1:9
  3. eval(['a' char(abs('0')+i) '=' char(abs('0')+i)])
  4. end
  5. a1 =
  6. 1
  7. a2 =
  8. 2
  9. a3 =
  10. 3
  11. a4 =
  12. 4
  13. a5 =
  14. 5
  15. a6 =
  16. 6
  17. a7 =
  18. 7
  19. a8 =
  20. 8
  21. a9 =
  22. 9

两个字符串比较

  • (1)strcmp('stnngl','strmg2'):将两个字符串进行比较,如果两字符串相等,此函数返回逻辑“真",否则返回逻辑“假",即此函数只能判断两字符串是否相等,而不能判断按字母顺序谁在谁前面。

  • (2)strcmp(C1,C2):如果Cl和C2都是由字符串组成的大小相同的单元阵,此函数返回一个与单元阵相同大小的逻辑矩阵。如果单元阵Cl和C2相同位置上的字符串相同,则在逻辑矩阵的相应位置上输出1,否则输出0。Cl和C2其中之一或全部可以为字符串或字符串矩阵,但返回的逻辑矩阵与单元阵有相同的大小。

  • 注意:单元数组和普通数组的返回值完全不相同,普通数组只返回一个表示是否相等的值

  • 比较是否相同的大小写函数对大小写敏感,空格也会参与比较

  1. strcmp('hello','hello')
  2. strcmp('hello','world')
  3. c1={'my' 'name';'is' 'lilei'}% 元胞数组,单元数组
  4. c2={'her' 'name';'is' 'lili'}
  5. c3='NAME'
  6. c4 = ['my' 'name';'is' 'olli'] % 普通char数组
  7. c5 = ['my' 'name';'is' 'lili']
  8. strcmp(c1,c2)
  9. strcmp(c1,c3)
  10. strcmp(c5,c4)
  11. % ans =
  12. % 1
  13. % ans =
  14. % 0
  15. % c1 =
  16. % 'my' 'name'
  17. % 'is' 'lilei'
  18. % c2 =
  19. % 'her' 'name'
  20. % 'is' 'lili'
  21. % c3 =
  22. % NAME
  23. % c4 =
  24. % myname
  25. % isolli
  26. % c5 =
  27. % myname
  28. % islili
  29. % ans =
  30. % 0 1
  31. % 1 0
  32. % ans =
  33. % 0 0
  34. % 0 0
  35. % ans =
  36. % 0

两个字符串的前n个字符

  • strncmp('string1','string2',n):如果2个字符串的前n个字符相同,则此函数返回逻辑"真",否则返回逻辑"假",比较函数对大小写敏感。
  • strncmp(C1,C2,n):如果Cl和C2为由字符串组成的大小相同的单位阵,则此函数将相同位置的字符串的前N个字符进行比较。如果相同就在相同位置输出1,否则输出0;如其中之一为字符串,则将单位阵中的所有字符串都与这个字符串进行比较,返回与单位阵相同大小的逻辑阵。
  1. s1='Matlab';s2='MatLab';
  2. strncmp(s1,s2,3)
  3. strncmp(s1,s2,4)
  4. c1={'good' 'bad';'Matlab' 'Matlab'}
  5. c2='MatLab'
  6. strncmp(c1,c2,3)
  7. strncmp(c1,c2,4)
  8. % ans =
  9. % 1
  10. % ans =
  11. % 0
  12. % c1 =
  13. % 'good' 'bad'
  14. % 'Matlab' 'Matlab'
  15. % c2 =
  16. % MatLab
  17. % ans =
  18. % 0 0
  19. % 1 1
  20. % ans =
  21. % 0 0
  22. % 0 0

匹配字符串操作

  • strmatch('substr', S)

    • S可以是字符串矩阵或者字符串组成的单元阵,如果是单元阵,则必须是单列,函数返回以字符串substr开始的行的行号。字符串矩阵的查找速度要比单元阵的查找速度要快。
  • strvcat('Hello','Yes') is the same as ['Hello';'Yes '] exceptthat the padding is done automatically. 此函数用于构造字符串矩阵,但是可以自动补零是每行中字符数量相同。 但是使用 char函数 也能解决这个问题

  1. k=strmatch('good',char('good','badgood','goodbad'))
  2. s={'yes';'noyes';'yesno'}
  3. strmatch('yes',s,'exact')
  4. % k =
  5. % 1
  6. % 3
  7. % s =
  8. % 'yes'
  9. % 'noyes'
  10. % 'yesno'
  11. % ans =
  12. % 1

在字符串中查找子串

  • findstr('str1','str2')此函数在长字符串中查找短的字符串,并返回字符串中短字符串开始的所有位置。子串和母串在括号中既可在前也可在后,即str1、str2中任意一个都可作为子串或母串。
  1. format compact
  2. s='This is a good goose.'
  3. b=findstr(s,'oo')
  4. % s =
  5. % This is a good goose.
  6. % b =
  7. % 12 17

字符串替换操作

  • strrep('str1','str2','str3')

    • 此函数将字符串中的所有的字符串str2用字符串str3来代替。其中,str1、str2和str3任何一个可以为字符串组成的单位阵或矩阵,返回的结果与此单位阵或矩阵有相同的大小。如果两个以上为单元阵(元胞矩阵)或矩阵时,则它们的类型和大小必须相同(每行字符数是不同的)。
  1. format compact
  2. strrep(s,'oo','ee')
  3. str1={'matlab' 'welcome';'you' 'me'}
  4. str2={'MatLab' 'lab';'good' 'software'}
  5. str3={'mat' 'come';'you' 'me'}
  6. strrep(str1,str3,str2)
  7. strrep(str1,'me','you')
  8. strrep('MatLab',str2,'!!!')
  9. strrep('matlab','lab',str3)
  10. % test_strrep
  11. % ans =
  12. % This is a geed geese.
  13. % str1 =
  14. % 'matlab' 'welcome'
  15. % 'you' 'me'
  16. % str2 =
  17. % 'MatLab' 'lab'
  18. % 'good' 'software'
  19. % str3 =
  20. % 'mat' 'come'
  21. % 'you' 'me'
  22. % ans =
  23. % 'MatLablab' 'wellab'
  24. % 'good' 'software'
  25. % ans =
  26. % 'matlab' 'welcoyou'
  27. % 'you' 'you'
  28. % ans =
  29. % '!!!' 'MatLab'
  30. % 'MatLab' 'MatLab'
  31. % ans =
  32. % 'matmat' 'matcome'
  33. % 'matyou' 'matme'

得到指定的子串

(1)strtok('string',d):此函数返回由字符串d作为分割的字符串string的第1部分,也就是说,返回字符串strmg中第1个字符d之前的所有字符。如果字符串中不含有字符d则返回整个字符串;如果d字符恰为字符串string的第1个字符,则函数返回除第1个字符之外的所有字符。合法的d可以为任意字符或字符串,如果d为字符串,则将它的第1个字符作为分隔符。如果string中有前导空格,则前导空格将被忽略。

(2)strtok('stnng'):此函数以默认的回车符(ASCII码为13)、制表符(ASCII码为9)、空格(ASCII码为32)作为分割符,前导空格将被忽略

(3)[token,rem]=strtok(•••):此函数不但返回上面的查找结果token,还返回剩余的字符串rem,其中不包括分割符,前导空格被忽略。其中strtok(...)可以为strtokok('string')或strtok('string',d)形式。

判断串中元素是否为字母

  • isletter(S) S可以是字符串或字符串矩阵,此函数返回与S同样维数的逻辑矩阵,如果S中的元素为字母,则在逻辑矩阵的相应位置上输出1,否则输出0.

判断串中元素是否为空格

  • isspace(S) 此函数与isletter(S)用法相同,在为空格的相应位置上输出1,否则输出0

matlab学习笔记10_5 通用字符串操作和比较函数的更多相关文章

  1. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  2. python学习笔记(二)、字符串操作

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...

  3. matlab学习笔记11_3高维数组操作 filp, shiftdim, size, permute, ipermute

    一起来学matlab-matlab学习笔记11 11_3 高维数组处理和运算 filp, shiftdim, size, permute, ipermute 觉得有用的话,欢迎一起讨论相互学习~Fol ...

  4. matlab学习笔记11_2高维数组操作 squeeze,ind2sub, sub2ind

    一起来学matlab-matlab学习笔记11 11_2 高维数组处理和运算 squeeze, ind2sub, sub2ind 觉得有用的话,欢迎一起讨论相互学习~Follow Me squeeze ...

  5. matlab学习笔记10_6 字符串与数值间的转换以及进制之间的转换

    一起来学matlab-matlab学习笔记10 10_6 字符串与数值间的转换以及进制之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合 ...

  6. matlab学习笔记(一)单元数组

    matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x)  :取最大的整数 ceil(3.18)=4,ceil( ...

  7. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  8. RX学习笔记:JavaScript数组操作

    RX学习笔记:JavaScript数组操作 2016-07-03 增删元素 unshift() 在数组开关添加元素 array.unshift("value"); array.un ...

  9. Windows phone 8 学习笔记(2) 数据文件操作

    原文:Windows phone 8 学习笔记(2) 数据文件操作 Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方 ...

随机推荐

  1. SpringBoot项目打成jar在linux后台运行

    --关闭客户端依然进程存在 nohup java -jar spring-boot-hello-1.0.jar 1>/dev/null 2>&1 & --Ctrl+C后不会 ...

  2. python代码安全扫描工具

    python代码安全扫描工具:Coverity. Fortify.SecMissile(漏扫,对源代码提供基于语义的搜索和分析能力,实现已知安全漏洞的快速扫描)

  3. Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't

    在使用真机定位页面元素时启动uiautomatorviewer.bat ,报错Error while obtaining UI hierarchy XML file: com.android.ddml ...

  4. Linux——查询服务器公网IP

    前言 服务器查看IP,十分简单,但是如何查看公网IP呢? 步骤 网站:http://www.cip.cc/ 命令行查询(详细): UNIX/Linux: #curl cip.cc Windows: & ...

  5. postgres高可用学习篇三:haproxy+keepalived实现postgres负载均衡

    环境: CentOS Linux release 7.6.1810 (Core) 内核版本:3.10.0-957.10.1.el7.x86_64 node1:192.168.216.130 node2 ...

  6. C++中的hash_map和map的区别

    hash_map和map的区别在哪里?构造函数.hash_map需要hash函数,等于函数:map只需要比较函数(小于函数). 存储结构.hash_map采用hash表存储,map一般采用红黑树(RB ...

  7. django-签名加密模块It's dangerous--加密token

    https://juejin.im/entry/56b30250df0eea0054375e1d 安装 pip install itsdangerous 使用 from itsdangerous im ...

  8. Python爬虫进阶 | 多线程

    一.简介 为了提高爬虫程序效率,由于python解释器GIL,导致同一进程中即使有多个线程,实际上也只会有一个线程在运行,但通过request.get发送请求获取响应时有阻塞,所以采用了多线程依然可以 ...

  9. .NET Core入门程序及命令行练习

    用命令行一步一步新建项目.添加Package.Restore.Build.Run 执行的实现方式,更让容易让我们了解.NET Core的运行机制. 准备工作 安装.NET Core 运行环境,下载地址 ...

  10. zeebe 0.20.0 发布生产可用了!

    一个比较好消息,来自camunda zeebe 团队的消息,zeebe 0.20.0 发布,终于可以生产可用了 如果关注了官方的声明的话,同时团队也出了一个自己的许可协议,但是和大部分当前的开源 产品 ...