在MATLAB中创建字符串非常简单. 实际上,我们在前面的示例中已经使用了很多次. 例如,在命令提示符下键入以下内容:
my_string = Yiibai Yiibai
MATLAB
MATLAB执行上述语句并返回以下结果-
Trial>> my_string = Yiibai Yiibai
my_string =
Yiibai Yiibai
Shell
MATLAB将所有变量视为数组,并将字符串视为字符数组. 使用whos命令检查上面创建的变量-
Trial>> whos
Name Size Bytes Class Attributes
ans 1x92 184 char
my_string 1x16 32 char
x 1x3 360 cell
Shell
有趣的是,您可以使用数字转换功能(例如uint8或uint16)将字符串中的字符转换为数字代码. char函数将整数向量转换回字符-
示例
创建脚本文件并在其中键入以下代码-
my_string = Yiibais Tutorial;
str_ascii = uint8(my_string) % 8-bit ascii values
str_back_to_char= char(str_ascii)
str_16bit = uint16(my_string) % 16-bit ascii values
str_back_to_char = char(str_16bit)
MATLAB
执行上述示例代码并获得以下结果-
str_ascii =
1×17 uint8 行向量
1 至 15 列
89 105 105 98 97 105 39 115 32 84 117 116 111 114 105
16 至 17 列
97 108
str_back_to_char =
Yiibais Tutorial
str_16bit =
1×17 uint16 行向量
1 至 15 列
89 105 105 98 97 105 39 115 32 84 117 116 111 114 105
16 至 17 列
97 108
str_back_to_char =
Yiibais Tutorial
Shell
到目前为止,我们讨论的字符串是一维字符数组;但是,我们需要存储更多维度的数据. 在程序中存储更多尺寸的文本数据. 这是通过创建一个矩形字符数组来实现的.
创建矩形字符数组的最简单方法是根据需要垂直或水平连接两个或多个一维字符数组.
通过以下任意一种方法垂直组合字符串-
创建脚本文件并在其中键入以下代码-
doc_profile = [Bara Tli ; ...
Sr. Surgeon ; ...
R N Tagore Cardiology Research Center]
doc_profile = char(Bara Tli, Sr. Surgeon, ...
RN Tagore Cardiology Research Center)
MATLAB
运行文件时,将显示以下结果-
Trial>> doc_profile = [Bara Tli ; ...
Sr. Surgeon ; ...
R N Tagore Cardiology Research Center]
doc_profile = char(Bara Tli, Sr. Surgeon, ...
RN Tagore Cardiology Research Center)
doc_profile =
3×37 char 数组
Bara Tli
Sr. Surgeon
R N Tagore Cardiology Research Center
doc_profile =
3×36 char 数组
Bara Tli
Sr. Surgeon
RN Tagore Cardiology Research Center
Shell
您可以通过以下任意一种方式水平组合字符串-
示例
创建脚本文件并在其中键入以下代码-
name = Myra Yli ;
position = Sr. Surgeon ;
worksAt = R N Tagore Cardiology Research Center;
profile = [name , position , worksAt]
profile = strcat(name, , , position, , , worksAt)
MATLAB
执行上述示例代码并获得以下结果-
Trial>> name = Myra Yli ;
position = Sr. Surgeon ;
worksAt = R N Tagore Cardiology Research Center;
profile = [name , position , worksAt]
profile = strcat(name, , , position, , , worksAt)
profile =
Myra Yli , Sr. Surgeon , R N Tagore Cardiology Research Center
profile =
Myra Yli,Sr. Surgeon,R N Tagore Cardiology Research Center
Shell
从以前的研究中可以明显看出
但是,更有效的组合字符串的方法是将结果数组转换为单元格数组.
MATLAB单元阵列可以在阵列中存储不同大小和类型的数据. 单元格数组提供了一种更灵活的方式来存储不同长度的字符串.
cellstr函数将字符数组转换为字符串的单元格数组.
创建脚本文件并在其中键入以下代码-
name = Myra Tli ;
position = St. Sargeon ;
worksAt = R N Tagore Cardiology Research Center;
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)
Shell
执行上述示例代码并获得以下结果-
Trial>> name = Myra Tli ;
position = St. Sargeon ;
worksAt = R N Tagore Cardiology Research Center;
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)
Myra Tli
St. Sargeon
R N Tagore Cardiology Research Center
Shell
MATLAB提供了许多字符串函数来创建,组合,解析,比较和操作字符串.
下表简要介绍了MATLAB中的字符串函数.
用于在字符数组中存储文本matlab读字符串,组合字符数组等的功能-
功能说明
创建一个空白字符串
从字符数组创建字符串数组
转换为字符数组(字符串)
确保输入的是字符串的单元格数组
确定该项是否为字符数组
将数据设置为字符串格式
水平连接字符串
将单元格中的字符串连接到单个字符串
用于识别字符串的一部分,查找并替换子字符串的功能-
功能说明
确定该项是否为字符数组
数组元素是否为字母
数组元素是空格
确定字符串是否为指定的类别
从字符串中读取格式化的数据
在另一个字符串中找到一个字符串
查找并替换子字符串
在指定的分隔符处分割字符串
字符串的选定部分
validatestring
检查文本字符串的有效性
确定表达式中的符号变量
匹配正则表达式(区分大小写)
匹配正则表达式(不区分大小写)
用正则表达式替换字符串
regexptranslate
用正则表达式替换字符串
字符串比较功能-
功能说明
比较字符串(区分大小写)
比较字符串(不区分大小写)
比较字符串的前n个字符(区分大小写)
比较字符串的前n个字符(不区分大小写)
将字符串更改为大写或小写,创建或删除空格的功能-
功能说明
从字符串末尾开始的带尾空格
从字符串中删除开头和结尾的空格
将字符串转换为小写
将字符串转换为大写字母
对齐字符数组
以下示例说明了上述一些字符串函数-
格式化字符串
创建脚本文件并在其中键入以下代码-
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-224948-1.html