目录
一、数据类型定义:向量(char)vs 变量(string)
Matlab 中可以通过一对单引号或一对双引号来创建字符(char)或字符串(string)。
字符变量(char)可以被当做一个由字符组成的一维向量,字符串(string)则是一个变量。
利用 char() 和 string() 函数可以对字符串和字符变量相互转换。[1]
二、不同之处
在很多情况下两者可以互换,下面主要关注两者应用的不同之处。
1. 字符和字符串的串联
:[ ] 或 strcat( )
可以直接用左右方括号([])对字符(char)进行串联,
对字符串(string)的串联则需要用到函数 strcat( )
。因为字符串是一个变量,用方括号串联只能得到m x n 字符串数组或向量。
2. 多行数组:用
分号(;)或换行完成
需要注意:
在
直接生成
字符(串)数组时,
char 数组每一行的个数必须相同
,string 数组则不需要。
(为什么说 “直接生成”,因为在使用函数 str2mat 创建字符(串)数组的时候,不用担心每一行的字符个数是否相等,函数在运行中会以字符最多的一行为准,而将其他行中的字符以空格补齐。可见本节第 4 点示例中的对比。)
[2]
3. 字符串中输入单引号
两个单引号相当于一个单引号,但只能用’ ”right” ‘(char),不能用 ” ”wrong” “(string)
4. 重复出现的元素
实际工作中经常遇到一系列字符串有重复出现的固定片段,这时就可以用 repmat() 函数来简化表达。下面给出几个例子:
补充:前两个例子不用 repmat() 函数所得结果相同。即也可以写成:
strcat("N",string([1:11]'))
strcat("N",num2str([1:11]'))
三、相关函数
字符串相关函数简表
创建
|
strcat
|
字符串组合
|
strvcat
|
竖直方向字符串组合
|
repmat
|
重复
|
比较
|
strcmp
|
判断两个字符串是否相等。
|
strncmp
|
判断两个字符串的前n个字符是否相等。
|
strcmpi和strncmpi
|
分别与strcmp和strncmp相同,只是在比较的过程中忽略了字母大小写。
|
查找替换
|
findstr
|
返回某一子串在整个字符串中的开始位置
|
strrep
|
一般的字符串查找与替换
|
strmatch
|
查找符合要求的行
|
strtok
|
查找某个字符最先出现的位置
|
引用
[1]
MATLAB中字符变量(char)和字符串变量(string)的异同_TifLil的博客-CSDN博客_matlab字符串变量
[2]
MATLAB字符和字符串 – 简书 (jianshu.com)
解决UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x8c in position : illegal multibyte sequence
2023年3月30日
人工智能洗衣机模糊推理系统实验(课本实验)
2023年3月28日
图像去雾/图像去雨(matlab/python)
2023年3月28日
C语言实现三子棋(不是人工智障哈哈哈)
2021年11月13日
Python使用python-snap7实现西门子PLC通讯
2023年3月8日
什么? 你还没用过 Cursor? 智能 AI 代码生成工具 Cursor 安装和使用介绍
2023年4月5日
基于Matlab的SLIC超像素分割算法分析
2022年5月7日
Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
2023年4月22日
IsADirectoryError: [Errno 21] Is a directory【已解决】
2023年6月21日
智能优化算法——粒子群优化算法(PSO)(小白也能看懂)
2023年3月10日
Origin绘制多折线图
2023年3月10日
Windows 10 python 3.9安装运行Mockingbird–拎包入住功略
2023年3月4日