MATLAB 字符串

news2024/12/23 17:18:20

MATLAB 字符串

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

在这里插入图片描述

示例
my_string = ‘(cainiaojc.com)’
MATLAB将执行上述语句并返回以下结果

my_string = (cainiaojc.com)
MATLAB将所有变量视为数组,而字符串则视为字符数组。让我们使用whos命令来检查上面创建的变量

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

Name Size Bytes Class Attributes
my_string 1x16 32 char
有趣的是,您可以使用数字转换函数,例如uint8或uint16以将字符串中的字符转换为其数字代码。char函数将整数向量转换回字符-

在线示例
创建一个脚本文件并在其中键入以下代码-

示例
my_string = ‘nhooo’‘s com’;
str_ascii = uint8(my_string) %8位 ascii 值
str_back_to_char= char(str_ascii)
str_16bit = uint16(my_string) %16位ascii值
str_back_to_char = char(str_16bit)
运行文件时,它显示以下结果-

str_ascii =

110 104 111 111 111 39 115 32 99 111 109

str_back_to_char = nhooo’s com
str_16bit =

110 104 111 111 111 39 115 32 99 111 109
str_back_to_char = nhooo’s com
矩形字符数组
到目前为止,我们讨论的字符串是一维字符数组。但是,我们需要存储更多。我们需要在程序中存储更多维度的文本数据。这是通过创建矩形字符数组来实现的。

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

您可以通过以下两种方式垂直组合字符串-

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

使用char函数。如果字符串的长度不同,char会用尾随空格填充较短的字符串,以便每行具有相同的字符数。

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

示例
doc_profile = ['Zara Ali '; …
'Sr. Surgeon '; …
‘R N Tagore Cardiology Research Center’]
doc_profile = char(‘Zara Ali’, ‘Sr. Surgeon’, …
‘RN Tagore Cardiology Research Center’)
运行文件时,它显示以下结果-

doc_profile =
Zara Ali
Sr. Surgeon
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali
Sr. Surgeon
RN Tagore Cardiology Research Center
您可以通过以下两种方式水平组合字符串-

使用MATLAB串联运算符[],并用逗号或空格分隔输入字符串。此方法保留输入数组中的所有尾随空格。

使用字符串串联函数 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 Center
profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center
将字符串合并到单元格数组中
从前面的讨论中可以明显看出,合并长度不同的字符串可能会很麻烦,因为数组中的所有字符串都必须具有相同的长度。我们在字符串的末尾使用了空格来使它们的长度相等。

但是,组合字符串的更有效方法是将结果数组转换为单元格数组。

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

cellstr函数将字符数组转换为字符串的单元格数组。

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

示例
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = ‘R N Tagore Cardiology Research Center’;
profile = char(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中的字符串函数
MATLAB提供了许多字符串函数,用于创建,组合,解析,比较和操作字符串。

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

功能 作用
用于在字符数组中存储文本,组合字符数组等的函数
blanks
创建空白字符字符串

cellstr 从字符数组创建字符串的单元格数组
char
转换为字符数组(字符串)

iscellstr 确定输入是否为字符串的单元格数组
ischar 确定项目是否为字符数组
sprintf 将数据格式化为字符串
strcat 水平连接字符串
strjoin 将单元格数组中的字符串连接为单个字符串
识别字符串部分,查找和替换子字符串的函数
ischar 确定项目是否为字符数组
isletter 字母数组元素
isspace 作为空格字符的数组元素
isstrprop 确定字符串是否属于指定类别
sscanf 从字符串读取格式化数据
strfind 在另一个字符串中查找一个字符串
strrep 查找并替换子字符串
strsplit 在指定的分隔符处分割字符串
strtok 字符串的选定部分
validatestring 检查文本字符串的有效性
symvar 确定表达式中的符号变量
regexp 匹配正则表达式(区分大小写)
regexpi
匹配正则表达式(不区分大小写)

regexprep 使用正则表达式替换字符串
regexptranslate
将字符串转换为正则表达式

字符串比较功能
strcmp 比较字符串(区分大小写)
strcmpi
比较字符串(不区分大小写)

strncmp 比较字符串的前n个字符(区分大小写)
strncmpi
比较字符串的前 n 个字符(不区分大小写)

用于将字符串更改为大写或小写,创建或删除空格的函数
deblank 从字符串末尾去除尾随空白
strtrim 删除字符串的前导和尾随空格
lower 将字符串转换为小写
upper 将字符串转换为大写
strjust 对齐字符数组
实例
以下示例说明了上述一些字符串函数-

格式化字符串
创建一个脚本文件并在其中键入以下代码-

示例
A = pi1000ones(1,5);
sprintf(’ %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n’, A)
运行文件时,它显示以下结果-

ans = 3141.592654
3141.59
+3141.59
3141.59
000003141.59
连接字符串
创建一个脚本文件并在其中键入以下代码-

示例
%字符串单元格数组
str_array = {‘red’,‘blue’,‘green’, ‘yellow’, ‘orange’};

%将单元格数组中的字符串合并为单个字符串
str1 = strjoin(str_array, “-”)
str2 = strjoin(str_array, “,”)
运行文件时,它显示以下结果-

str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange
查找和替换字符串
创建一个脚本文件并在其中键入以下代码-

示例
students = {‘Zara Ali’, ‘Neha Bhatnagar’, …
‘Monica Malik’, ‘Madhu Gautam’, …
‘Madhu Sharma’, ‘Bhawna Sharma’,…
‘Nuha Ali’, ‘Reva Dutta’, …
‘Sunaina Ali’, ‘Sofia Kabir’};

%strrep函数搜索并替换子字符串。
new_student = strrep(students(8), ‘Reva’, ‘Poulomi’)
%显示名字
first_names = strtok(students)
运行文件时,它显示以下结果-

new_student =
{
[1,1] = Poulomi Dutta
}
first_names =
{
[1,1] = Zara
[1,2] = Neha
[1,3] = Monica
[1,4] = Madhu
[1,5] = Madhu
[1,6] = Bhawna
[1,7] = Nuha
[1,8] = Reva
[1,9] = Sunaina
[1,10] = Sofia
}
比较字符串
创建一个脚本文件并在其中键入以下代码-

示例
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 test
str2 = This is text
ans = This is test and This is text are not equal

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1636805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python基础学习之记录中间文件

倘若想记录代码运行过程中的结果文件,那么以下函数仅供参考 代码示例: import os import datetime import sys import pandas as pd# 定义总的文件夹路径 base_folder E:\\D\\log\\product_data_compare_log# 定义一个函数来创建带时间戳的文件夹 def…

特征提取(Feature Extraction)常见统计特征笔记(三)

统计特征是描述数据集中值的一组量,通常用于了解数据的分布、集中趋势和变异程度。常见的统计特征包括均值、中位数、众数、标准差、方差等。下面会详细解释每个统计特征,并给出相应的Python代码。 1、均值(Mean):所有…

【团体程序设计天梯赛】往年关键真题 L2-036 网红点打卡攻略 模拟 L2-037 包装机 栈和队列 详细分析完整AC代码

【团体程序设计天梯赛 往年关键真题 详细分析&完整AC代码】搞懂了赛场上拿下就稳 【团体程序设计天梯赛 往年关键真题 25分题合集 详细分析&完整AC代码】(L2-001 - L2-024)搞懂了赛场上拿下就稳了 【团体程序设计天梯赛 往年关键真题 25分题合…

【webrtc】MessageHandler 4: 基于线程的消息处理:以Fake 收发包模拟为例

G:\CDN\rtcCli\m98\src\media\base\fake_network_interface.h// Fake NetworkInterface that sends/receives RTP/RTCP packets.虚假的网络接口,用于模拟发送包、接收包单纯仅是处理一个ST_RTP包 消息的id就是ST_RTP 类型,– 然后给到目的地:mediachannel处理: 最后消息消…

沟通是SAP项目成功的关键

我在前面的文章中提到SAP项目并不是传统意义上的IT项目,因为SAP项目实施的不仅仅是一个简单的ERP系统,除了系统之外还有流程再造、组织结构变更、用户培训等。在实施过程中有很多部门都要参与进来讨论和做决定,有很多问题和冲突需要解决。从关…

LangChain入门2 RAG详解

RAG概述 一个典型的RAG应用程序,它有两个主要组件: 索引:从源中获取数据并对其进行索引的管道。这通常在脱机情况下发生。检索和生成:在运行时接受用户查询,并从索引中检索相关数据,然后将其传递给模型。 从原始数据…

透明加密的解释及意义,透明加密软件有哪些?

一、什么是透明加密及意义 透明数据加密(Transparent Data Encryption (简称TDE))是指可以在文件层对数据和文件进行实时加密和解密,落盘的文件是加密后的内容,而对于上层应用系统和开发人员而言,加解密过程是无感知的…

Python_GUI框架 PyQt 与 Pyside6的介绍

Python_GUI框架 PyQt 与 Pyside6的介绍 一、简介 在Python的GUI(图形用户界面)开发领域,PyQt和PySide6是两个非常重要的工具包。它们都基于Qt库,为Python开发者提供了丰富的GUI组件和强大的功能。当然Python也有一些其他的GUI工…

Python 绘图边缘留白问题解决方案 / plt.savefig / plt.subplots_adjust 函数简析

文章目录 Part.I IntroductionPart.II 解决方案Chap.I plt.savefigChap.II plt.subplots_adjustChap.III plt.margins Part.III 探索历程Chap.I 默认保存方式Chap.II 使用 bbox_inches 参数控制Chap.III 自定义留白 Reference Part.I Introduction Python 绘图默认保存&#x…

【DeepL】菜鸟教程:如何申请DeepL免费API并使用Python的DeepL

前言 在这篇技术博文中,我们将介绍如何利用DeepL的强大功能,通过其免费API在Python项目中实现高质量的文本翻译。我们将从基础开始,解释DeepL是什么,它的用途,如何申请免费API,以及如何在Python中使用DeepL库。 什么是DeepL? DeepL是一个基于人工智能的翻译服务,它以…

开通Jetbrains个人账号,赠送这些付费插件

开通Jetbrains个人账号,或者Jetbrains现成账号的, 可赠送以下付费插件 现成账号:https://web.52shizhan.cn/activity/xqt8ly 个人账号:https://web.52shizhan.cn/legal 账号支持全家桶系列:AppCode,CLion,DataGrip,GoLand,Intell…

3.9设计模式——Strategy 策略模式(行为型)

意图 定义一系列的算法,把它们一个个封装起来,并且使他们可以相互替换此模式使得算法可以独立于使用它们的客户而变化 结构 Strategy(策略)定义所有支持的算法的公共入口。Context使用这个接口来调用某ConcreteStrategy定义的方…

C++编译器的程序转化

编译器在某些情况下会对程序进行转化,有些是编译器需要的,有些是出于性能考虑的,转化可能会产生出乎意料的结果 文章目录 明确的初始化操作参数的初始化返回值的初始化在使用者层面做优化在编译器层面做优化NRV 优化NRV优化的弊端 参考资料 明…

【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD)

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD) 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 My …

算法入门<二>:分治算法之汉诺塔问题及递归造成的栈溢出

1、分治算法 分治(divide and conquer),全称分而治之,是一种非常重要且常见的算法策略。分治通常基于递归实现,包括“分”和“治”两个步骤。 分(划分阶段):递归地将原问题分解为两…

【C语言】指针篇-精通库中的快速排序算法:巧妙掌握技巧(4/5)

🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、回调函数二、快速排序(Qsort)2.1 Qsort参数部分介绍2.2 不…

数据仓库和数据仓库分层

一、数据仓库概念 数据仓库(Data Warehouse),可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业&#…

计算机网络4——网络层4内部路由选择协议

文章目录 一、有关路由选择协议的几个基本概念1、理想的路由算法2、分层次的路由选择协议 二、内部网关协议 RIP1、协议 RIP 的工作原理2、特点3、距离向量算法4、坏消息传播慢 三、内部网关协议 OSPF1、基本特点2、OSPF 的五种分组类型 本节将讨论几种常用的路由选择协议&…

uniapp 自定义 App启动图

由于uniapp默认的启动界面太过普通 所以需要自定义个启动图 普通的图片不可以过不了苹果的审核 所以使用storyboard启动图 生成 storyboard 的网站:初雪云-提供一站式App上传发布解决方案

从零入门区块链和比特币(第一期)

欢迎来到我的区块链与比特币入门指南!如果你对区块链和比特币感兴趣,但不知道从何开始,那么你来对地方了。本博客将为你提供一个简明扼要的介绍,帮助你了解这个领域的基础知识,并引导你进一步探索这个激动人心的领域。…