字符串表示

类似于字符数组,不过Matlab中字符串是用单引号括起来的字符序列。也是以ASCII码形式存储。

>> str='LuYihang';
>> str(3:6)
ans ='Yiha'

注意:若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示。

>> str2='LuYi''hang'
str2 ='LuYi'hang'

字符串矩阵

也可以建立多行字符串,形成字符串矩阵。

>> ch=['a:f';'1:6']
ch =    //可以看到字符串中相用a:f代替abcdef是不行的,a:f就是一个字符串2×3 char 数组'a:f''1:6'
>> ch(2,2)
ans =':'

例题:建立一个字符串向量,然后对该向量做如下处理:
1 取第1~5个字符组成的子字符串。
2 将字符串倒过来重新排列。
3 将字符串中的小写字母变成相应的大写字母,其余字符不变。
4 统计字符串中小写字母的个数。

>> ch='ABc123d4e56FG90';
>> subch=ch(1:5)
subch ='ABc12'
//题目1
>> revch=ch(end:-1:1)
revch ='09GF65e4d321cBA'
//题目2
>> k=find(ch>='a'&ch<='z')
k =3     7     9
>> ch(k)=ch(k)-32
ch ='ABC123D4E56FG90'
//题目3  支持ASCII码
>> length(k)
ans =3
//题目4

字符串操作

1. 字符串的执行
格式: eval(s) s是字符串,作用是将字符串中的内容作为Matlab命令来执行,实现由键盘输入命令,而不是预先设置好命令,相比更灵活。

>> t=pi;
>> m='[t,sin(t),cos(t)]';
>> m
m ='[t,sin(t),cos(t)]'
>> eval(m)
ans =3.1416    0.0000   -1.0000

2. 字符串与数值之间的转换
abs和 double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。
char函数可以把ASCII码矩阵转换为字符串矩阵。

>> s1='MATLAB';
>> a=abs(s1)
a =77    65    84    76    65    66
>> b=char(a)
b ='MATLAB'

3. 字符串的比较
字符串的比较有两种方法:利用关系运算符或字符串比较函数。
关系运算符比较:两个字符串里的每个字符依次按ASCII值大小逐个进行比较,比较的结果是一个数值向量,向量中的元素要么是1,要么是0。

>> 'www 0'>='W1234'
ans =1×5 logical 数组1   1   1   0   0

使用关系运算符比较的前提:两个字符串的长度必须相等。

字符串比较函数用于判断字符串是否相等,有4种比较方式,函数如下:
1 strcmp(s1,s2):用来比较字符串s1和s2是否相等,如果相等,返回结果为1,否则返回0。
2 strncmp(s1,s2,,n):用来比较两个字符串前n个字符是否相等,如果相等返回1,否则返回0。
3 strcmpi(s1,s2):在忽略字母大小写前提下,比较字符串s1和s2是否相等,如果相等返回1,否则返回0。
4 strncmpi(s1,s2,n):在忽略字符串大小写前提下,比较两个字符串前n个字符是否相等,如果相等返回1,否则返回0。

>> strncmpi('www0','W123',1)
ans =logical1

4. 字符串的查找与替换
strfind(s1,s2):返回字符串s2在字符串s1中的开始位置。
strrep(s1,s2,s3):将字符串s1中的所有子字符串s2替换为字符串s3。

注意还有个findstr(s1,s2)函数,区别在于findstr函数中s1 s2无先后顺序区别,返回短字符串在长字符串中的开始位置。

>> strfind('ababedabababedfg','bed')
ans =4    12
>> strfind('bed','ababedabababedfg')
ans =[]
>> findstr('bed','ababedabababedfg')
ans =4    12>> strrep('ababedabababedfg','bed','toy')
ans ='abatoyababatoyfg'

Matlab中字符串表示、字符串矩阵、字符串中的常用函数相关推荐

  1. Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略

    Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop().dropna().isna().isnull().fillna())函数详解之详细攻略 目录 pandas中缺 ...

  2. 字符串(string)的常用语法和常用函数

    在python中,加了引号(单引号.双引号.三引号)的字符就是字符串类型,python并没有字符类型. 字符串也是很常用的数据类型,这里介绍一些用的较多的语法和方法,直接以代码示例展示. 1 str ...

  3. MATLAB科学绘图-MATLAB画图技巧与实例(一):常用函数

    Matlab拥有强大的绘图功能,内置了很多绘图函数,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数. 此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作.这类操作将图形的 ...

  4. matlab二维、三维矩阵转换、排序、转置等问题

    1.matlab二维转换为三维矩阵 这里用到reshape函数 格式为AA1=reshape(A1,[行,列,页]) 如下所示 A1=[2 2 2 2 2.5 2.5 2.5 2.5 1.8 1.8 ...

  5. matlab实验5函数文件,matlab实验作业(数据类型,常用函数,导入外部文件)

    实验一 MATLAB环境与运算基础 一.实验目的 掌握 MATLAB环境与基本操作: 掌握MATLAB常见数据类型的创建.表示和引用: 熟悉MATLAB数据类型的各种运算与常用函数: 熟悉导入外部数据 ...

  6. 【C语言】字符串加密解密,字符串左旋,杨氏矩阵,删除字符串中出现次数最少的字符

    目录 1.字符串解密加密 2.字符串左旋 3.杨氏矩阵 4.删除字符串中出现次数最少的字符 好久不见,自从刷完剑指offer里面所有目前可以用C解决的题目吧之后,就在刷一些高校的题和华为机试题,一直在 ...

  7. ajax参数中字符串最大长度_6.7 C++数组名作函数参数 | 求3*4矩阵中最大的值

    C++用数组元素作函数实参 C++中实参可以是表达式,而数组元素可以是表达式的组成部分,因此数组元素可以作为函数的实参,与用变量作实参一样,将数组元素的值传送给形参变量. C++也可以用数组名作函数参 ...

  8. mysql更新字符串中某个字符串_mysql更新某个字符串字段的部分内容

    如果现在需要Mysql更新字段重部分数据,而不是全部数据,应该采用何种方法呢?下面介绍了两种情况下Mysql更新字段中部分数据的方法,供您参考. Mysql更新字段中部分数据第一种情况: update ...

  9. c语言中字符串的子式咋样输出,C语言常用代码

    <C语言常用代码>由会员分享,可在线阅读,更多相关<C语言常用代码(48页珍藏版)>请在人人文库网上搜索. 1.WORD格式-可编辑-#includeusing namespa ...

最新文章

  1. attr,abbr,addr三个常见的单词意思
  2. 四舍六入五成双银行家算法的 PHP和Javascript实现
  3. mac下安装brew下载非常慢解决方法
  4. zblog php 七牛缩略图,zblog中Gravatar头像不显示解决方法
  5. leetcode力扣94. 二叉树的中序遍历
  6. 任正非:华为不会拆分;以色列公司称可解锁所有 iOS 设备;Java 13 要来了! | 极客头条...
  7. 星低级格式化工具_Elixir 数据库查询工具 Ecto 讲解
  8. UDP报文观测以及DNS的工作原理
  9. 「leetcode」654.最大二叉树(详解)
  10. 零基础入门实践目标检测项目
  11. Java并发编程思维导图
  12. 关于namecheap 域名运营商,域名赎回详细步骤
  13. 自考-计算机程序设计-1-概论
  14. 常见国际贸易专业术语
  15. c语言布尔变量逻辑运算,在C ++中对布尔值使用按位运算符
  16. c语言rand生成1 100随机数,c语言生成1~100随机数
  17. 小鹤双拼 - 微软拼音自动配置双拼方案
  18. 计算机移动硬盘的一般作用,移动硬盘有什么用处
  19. 【黄啊码】php结合redis实现商城在线秒杀抢购
  20. linux操作系统下 c语言编程入门

热门文章

  1. win10控制面板里没java_win10安装java以及java配置遇到的坑
  2. 解决使用迅雷下载页面而不是文件的问题
  3. docker部署文件映射关系
  4. 用友U8案例教程应收管理前台操作
  5. 双人联网贪吃蛇C语言,c语言贪吃蛇-单人模式双人对抗
  6. 硬件开发笔记(八): 硬件开发基本流程,制作一个USB转RS232的模块(七):创建基础DIP元器件(晶振)封装并关联原理图元器件
  7. JDK1.8 JVM内存模型
  8. Vivado 2018.3 安装步骤及 license 获取
  9. 阿贾克斯(AJAX)
  10. CSS3学习(四):水平和垂直方向布局