MATLAB 字符串

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 = pi1000 ones(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

相关推荐
其实吧31 小时前
基于Matlab的图像融合研究设计
人工智能·计算机视觉·matlab
Matlab程序猿小助手9 小时前
【MATLAB源码-第208期】基于matlab的改进A*算法和传统A*算法对比仿真;改进点:1.无斜穿障碍物顶点2.删除中间多余节点,减少转折。
开发语言·嵌入式硬件·算法·matlab·机器人
IT猿手14 小时前
基于卷积神经网络(CNN)的时间序列预测,15个输入1个输出,可以更改数据集,MATLAB代码
人工智能·深度学习·神经网络·算法·matlab·cnn
其实吧317 小时前
基于MATLAB的运动车辆跟踪检测系统
开发语言·matlab
梦里水乡85721 小时前
基于MATLAB的农业病虫害识别研究
开发语言·matlab
墨痕_7771 天前
论文阅读笔记Dense Passage Retrieval for Open-Domain Question Answering
matlab
真的是我22 天前
基于MATLAB课程设计-图像处理完整版
图像处理·人工智能·计算机视觉·matlab
顶呱呱程序2 天前
2-140 基于Solidworks和Matlab Simulink Simscape仿真的机器人手臂仿真
开发语言·matlab·机器人·simulink·simscape·机器人手臂仿真
ULTRA??2 天前
随机生成100组N个数并对比,C++,python,matlab,pair,std::piecewise_construct
开发语言·c++·python·matlab
陌夏微秋2 天前
硬件基础06 滤波器——无源、有源(含Filter Solutions、Filter Pro、MATLAB Fdatool)
matlab·硬件工程·信息与通信·信号处理