在MATLAB中创建一个字符string非常简单。事实上,我们已经使用了很多次。例如,在命令提示符下键入以下内容:

my_string = "Tutorials Point"

MATLAB将执行上述语句并返回以下结果

my_string = Tutorials Point

MATLAB将所有变量视为数组,并将字符string视为字符数组。让我们使用whos命令来检查上面创建的变量 -

whos

MATLAB将执行上述语句并返回以下结果 -

Name           Size            Bytes  Class    Attributesmy_string      1x16               32  char

矩形字符数组

到目前为止我们探讨的字符string是一维字符数组; 但是,我们需要存储的不止一个。我们需要在我们的程序中存储更多的维度文本数据。这是通过创建矩形字符数组实现的。

创建矩形字符数组的最简单方法是根据需要垂直或水平连接两个或更多个一维字符数组。

您可以通过以下任一方式垂直组合字符string -

  • 使用MATLAB连接运算符[]并用分号(;)分隔每行。请注意,在这种方法中,每行必须包含相同数量的字符。对于不同长度的字符string,您应该根据需要填充空格字符。

  • 使用char函数。如果字符string的长度不同,则char将较短的字符string填充到尾部空白处,以使每行具有相同的字符数。

创建脚本文件并在其中键入以下代码 -​​​​​​​

doc_profile = ["Zara Ali                             "; ...               "Sr. Surgeon                          "; ...               "R N Tagore Cardiology Research Center"]doc_profile = char(strcat("Zara Ali", strcat("Sr. Surgeon",strcat("RN Tagore Cardiology Research Center"))))

运行文件时,会显示以下结果 -​​​​​​​

doc_profile =Zara Ali                             Sr. Surgeon                          R N Tagore Cardiology Research Centerdoc_profile =Zara Ali                            Sr. Surgeon                         RN Tagore Cardiology Research Center

您可以通过以下任一方式水平组合字符string -

  • 使用MATLAB连接运算符,[]并用逗号或空格分隔输入字符string。该方法保留输入数组中的任何尾随空格。

  • 使用字符string连接功能,strcat。此方法会删除输入中的尾随空格。

创建脚本文件并在其中键入以下代码 -​​​​​​​

name =     "Zara Ali                             ";position = "Sr. Surgeon                          "; worksAt =  "R N Tagore Cardiology Research Center";profile = [name ", " position ", " worksAt]profile = strcat(name, ", ", position, ", ", worksAt)

运行文件时,会显示以下结果 -

​​​​​​​

profile = Zara Ali                             , Sr. Surgeon                          , R N Tagore Cardiology Research Centerprofile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center

将字符string组合成单元格数组

从我们之前的探讨中可以清楚的表明,组合不同长度的字符string可能会很痛苦,因为数组中的所有字符string都必须具有相同的长度。我们在字符string的末尾使用了空格,使其长度相等。

然而,组合字符string的更有效的方法是将生成的数组转换为单元格数组。

MATLAB单元格数组可以在数组中保存不同大小和类型的数据。单元格数组提供了一种更灵活的方式来存储不同长度的字符string。

cellstr的函数转换字符数组成字符string的单元数组。

创建脚本文件并在其中键入以下代码 -​​​​​​​

name =     "Zara Ali                             ";position = "Sr. Surgeon                          "; worksAt =  "R N Tagore Cardiology Research Center";profile = char(strcat(name, position, worksAt));profile = cellstr(profile);disp(profile)

运行文件时,会显示以下结果 -

​​​​​​​

{                                                                                 [1,1] = Zara Ali                                                                [2,1] = Sr. Surgeon                                                             [3,1] = R N Tagore Cardiology Research Center                                 }

MATLAB中的字符string函数

MATLAB提供了许多字符string函数来创建,组合,解析,比较和操作字符string。

下表简要介绍了MATLAB中的字符string函数 -

功能 目的
用于将文本存储在字符数组中,组合字符数组等的功能
空白 创建空白字符的字符string
char 转换为字符数组(字符string)
iscellstr 确定输入是字符string的单元格数组
sprintf 将数据格式化为字符string
strcat 水平连接字符string
strjoin 将单元格数组中的字符string连接到单个字符string中
识别字符string部分的函数,查找和替换子string
isspace 数组元素是空格
isstrprop 确定字符string是否是指定的类别
sscanf 从字符string读取格式化数据
strfind 在另一个中找到一个字符string
strrep 查找并替换子string
strsplit 在指定的分隔符处拆分字符string
strtok 字符string的选定部分
symvar 确定表达式中的符号变量
regexprep 使用正则表达式替换字符string
字符string比较功能
strcmp 比较字符string(区分大小写)
strcmpi 比较字符string(不区分大小写)
strncmp 比较字符string的前n个字符(区分大小写)
strncmpi 比较字符string的前n个字符(不区分大小写)
将字符string更改为大写或小写的功能,创建或删除空格
deblank 从字符string末尾剥去尾随空白
strtrim 从字符string中删除前导和尾随的空格

例子

以下示例说明了一些上述字符string函数 -

格式化字符string

创建脚本文件并在其中键入以下代码 -

​​​​​​​

A = pi*1000*ones(1,5);sprintf(" %f %.2f %+.2f %12.2f %012.2f ", A)

运行文件时,会显示以下结果 -

连接字符string

创建脚本文件并在其中键入以下代码 -

​​​​​​​

%cell array of stringsstr_array = {'red','blue','green', 'yellow', 'orange'};% Join strings in cell array into single stringstr1 = strjoin(str_array, "-")str2 = strjoin(str_array, ",")

运行文件时,会显示以下结果 -

​​​​​​​

str1 = red-blue-green-yellow-orangestr2 = red,blue,green,yellow,orange

查找和替换字符string

创建脚本文件并在其中键入以下代码 -​​​​​​​

students = {'Zara Ali', 'Neha Bhatnagar', ...            'Monica Malik', 'Madhu Gautam', ...            'Madhu Sharma', 'Bhawna Sharma',...            'Nuha Ali', 'Reva Dutta', ...            'Sunaina Ali', 'Sofia Kabir'}; % The strrep function searches and replaces sub-string.new_student = strrep(students(8), 'Reva', 'Poulomi')% Display first namesfirst_names = strtok(students)

运行文件时,会显示以下结果

比较字符string

创建脚本文件并在其中键入以下代码 -

​​​​​​​

str1 = "This is test"str2 = "This is text"if (strcmp(str1, str2))   sprintf("%s and %s are equal", str1, str2)else   sprintf("%s and %s are not equal", str1, str2) end

运行文件时,会显示以下结果 -

​​​​​​​

str1 = This is teststr2 = This is textans = This is test and This is text are not equal

【新星计划】MATLAB-字符串处理相关推荐

  1. 新星计划第二季|量身打造、全新互动,快来报名

    活动官网: https://marketing.csdn.net/p/1d9bedb178313a415dfd4b5839766206 <新星计划>第一季,我们汇集了各大领域的优秀新人,在 ...

  2. 北京智源新星计划启动,大力支持人工智能青年人才

    2020年5月10日,北京智源人工智能研究院(以下简称:智源研究院)正式启动"智源新星计划",与北京大学人工智能研究院合作拟引进首位新星学者. 智源新星计划是智源研究院持续推进&q ...

  3. matlab字符衔接,matlab字符串连接(多个字符串)的经验,matlab字符串

    matlab字符串连接(多个字符串)的经验,matlab字符串 参考 matlab中字符串连接的3种方法  文章,实验遇到的一些小白问题,如有问题希望大神们给予指导. Matlab中,两个或多个字符串 ...

  4. 2021-02-25 matlab 字符串和数字同时写入excel

    matlab 字符串和数字同时写入excel 1.字符串用{} area={'国家','中国','澳大利亚','韩国','新西兰'}'; heng={'C0','C1','C2','C3'}; 2.数 ...

  5. 新星计划·第三季【博文流量密码公开课】

    一.新星计划 "新星计划"是一个以发掘潜力新人.培养优质博主为目标的创作活动,通过为期一个月的时间,让资深"导师"和新人"学员"近距离接触, ...

  6. matlab 数值格式转换,Matlab字符串转换及数值格式转换

    Matlab字符串转换及数值格式转换 字符串转换函数 abs 字符串到ASCII转换 dec2hex 十进制数到十六进制字符串转换 fprintf 把格式化的文本写到文件中或显示屏上 hex2dec ...

  7. matlab字符串操作总结

    matlab字符串操作总结 字符串操作总结 char(S1,S2,-) 利用给定的字符串或单元数组创建字符数组 double(S) 将字符串转化成ASC码形式 cellstr(S) 利用的给定的字符数 ...

  8. matlab字符串转换

    matlab字符串与数值之间的转换 close all;clear all;clc; num=rand(3,3) %产生3×3随机矩阵 s1=num2str(num) %将数值转换成字符串 s2=nu ...

  9. matlab字符串元胞数组,MATLAB字符串数组元胞数组和构架数组

    第三章MATLAB字符串数组.元 胞数组和构架数组 3.1字符串数组 3.1.1字符串入门 [例3.1-1]先请读者实际操作本例,以体会数值量与字符串的区别. clear a=12345.6789 c ...

  10. 【榜单公布】新星计划第二季落幕,快看你有没有上榜?

    铛铛铛!!! 各位新星计划的参赛博主们,经过近一个月的激烈角逐,"新星计划"第二季终于缓缓落下帷幕.感谢大家的热情参与和认真创作,那么,在众多参赛博主中,又有哪些实力强劲的技术新星 ...

最新文章

  1. 《HelloGitHub》第 20 期
  2. mysql 子sql中调用存储过程_mysql 子sql中调用存储过程
  3. ajax.ajaxmethod无效,jQuery Ajax调用httpget webmethod(C#)无效
  4. 丰田pcs可以关闭吗_别只知道开不坏,现在的丰田还有这些厉害绝招!
  5. postgresql返回行数_怎么优化你的SQL查询?以PostgreSQL为例
  6. java 支付类的接口,Java后端支付大杂烩之core.dao,service,web(重点是接口的设计)(二)...
  7. 吴恩达神经网络和深度学习-学习笔记-14-学习率衰减
  8. maven常用插件: 打包源码 / 跳过测试 / 单独打包依赖项
  9. Vue项目在nginx下的部署实践(个人学习总结)
  10. 163设置邮件服务器,网易邮箱设置Exchange服务教程
  11. 【TS】GARCH模型(1)
  12. pgMP认证,还是再看看吧!
  13. 常见文件编码 - 多字节编码与Unicode编码区别
  14. ie 无法打开服务器网页,无法打开internet站点怎么办
  15. 基于STM32平台的数字温度显示器系统设计
  16. centos 7修改用户名和密码
  17. 《如何设计一个秒杀系统》——专栏笔记
  18. 华师大 OJ 3053
  19. 英汉翻译对照之视频声频媒体处理
  20. js整形转成double_JS和asp的类型转换函数

热门文章

  1. SVM -支持向量机原理详解与实践之五
  2. MATLAB处理txt文本文件---数据格式要有规律性,否则要用编写特定方式进行读取
  3. python取三位小数_python保留小数位的三种实现方法
  4. 机器学习第2天:简单线性回归模型
  5. LeetCode-二叉树-144. 二叉树的前序遍历
  6. 统计学中的自由度 Degrees of freedom (statistics)
  7. 第4章 最基础的分类算法-k近邻算法
  8. 干货|一文读懂中国7大支付体系(附27页流程图)
  9. Redis 如何分布式,来看京东金融的设计与实践
  10. 2015!我来了,你在哪里?今年第一篇