- 第1节:MATLAB 介绍
- 第2节:MATLAB 安装
- 第3节:MATLAB 基本语法
- 第4节:MATLAB 变量
- 第5节:MATLAB 命令
- 第6节:MATLAB M-Files
- 第7节:MATLAB 数据类型
- 第8节:MATLAB 运算符
- 第9节:MATLAB 算术运算
- 第10节:MATLAB 逻辑运算
- 第11节:MATLAB 关系运算
- 第12节:MATLAB 位运算
- 第13节:MATLAB 集合操作
- 第14节:MATLAB 决策制定
- 第15节:MATLAB if...end 语句
- 第16节:MATLAB if...else...end 语句
- 第17节:MATLAB if...elseif...elseif...else...end 语句
- 第18节:MATLAB 嵌套if语句
- 第19节:MATLAB switch语句
- 第20节:MATLAB 嵌套switch语句
- 第21节:MATLAB 循环类型
- 第22节:MATLAB while循环
- 第23节:MATLAB for循环
- 第24节:MATLAB 嵌套循环
- 第25节:MATLAB break语句
- 第26节:MATLAB continue语句
- 第27节:MATLAB 向量
- 第28节:MATLAB 向量的加法和减法
- 第29节:MATLAB 标量向量乘法
- 第30节:MATLAB 转置向量
- 第31节:MATLAB 追加向量
- 第32节:MATLAB 向量的模
- 第33节:MATLAB 向量点积
- 第34节:MATLAB 等差元素向量
- 第35节:MATLAB 矩阵
- 第36节:MATLAB 矩阵的加法和减法
- 第37节:MATLAB 除法(左,右)矩阵
- 第38节:MATLAB 矩阵标量操作
- 第39节:MATLAB 矩阵的转置
- 第40节:MATLAB 串联矩阵
- 第41节:MATLAB 矩阵乘法
- 第42节:MATLAB 矩阵的行列式
- 第43节:MATLAB 逆矩阵
- 第44节:MATLAB 数组
- 第45节:MATLAB 冒号符号
- 第46节:MATLAB 数字
- 第47节:MATLAB 字符串
- 第48节:MATLAB 函数
- 第49节:MATLAB 数据导入
- 第50节:MATLAB 数据导出
- 第51节:MATLAB 绘图
- 第52节:MATLAB 图形
- 第53节:MATLAB 代数
- 第54节:MATLAB 微积分
- 第55节:MATLAB 多项式
- 第56节:MATLAB 变换
- 第57节:MATLAB GNU Octave教程
MATLAB 字符串
my_string = 'test''在线教程'
MATLAB执行上述语句,返回以下结果:
my_string =
test在线教程
MATLAB 认为所有变量,数组和字符串被视为字符数组。
让我们使用命令检查上面创建的变量:
whos
MATLAB执行上面的语句,返回以下结果:
Name Size Bytes Class Attributes
my_string 1x16 32 char
你可以使用数字转换函数,如 uint8 或 uint16 字符串中的字符转换成数字代码。
char 函数整数向量转换回字符:
详细例子
在MATLAB中建立一个脚本文件,输入下述代码:
my_string = 'test''在线教程';
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)
运行该文件,显示以下结果:
str_ascii =
Columns 1 through 14
84 117 116 111 114 105 97 108 39 115 32 80 111 105
Columns 15 through 16
110 116
str_back_to_char =
test在线教程
str_16bit =
Columns 1 through 10
84 117 116 111 114 105 97 108 39 115
Columns 11 through 16
32 80 111 105 110 116
str_back_to_char =
test在线教程
MATLAB矩形字符数组
目前为止我们已经讨论过的字符串的字符数组是一维,但是我们需要更立体的文本数据存储在我们的程序中。这是通过创建的矩形的字符数组。
建立一个矩形字符数组的最简单的方法是通过连接两个或两个以上的一维字符数组,无论是垂直或水平的要求。
您可以通过以下方式之一合并垂直字符串:
-
使用 MATLAB 连接运算符 [] 和分离每行一个分号(;)。请注意,在该方法中的每一行必须包含相同的字符数。不同长度的字符串,应该根据需要使用空格字符。
-
使用 char 函数。如果字符串长度不同和 char 补齐较短尾随空白,使每一行都有相同数量的字符的字符串。
详细例子
在MATLAB中建立一个脚本文件,输入下述代码:
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。此方法删除尾随空格输入
详细例子
在MATLAB中建立一个脚本文件,并输入下述代码:
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
函数将字符数组转换为字符串的单元格数组。
详细例子
在MATLAB中建立一个脚本文件,输入下述代码:
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = 'R N Tagore Cardiology Research Center';
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)
运行该文件,显示以下结果:
'Zara Ali'
'Sr. Surgeon'
'R N Tagore Cardiology Research Center'
MATLAB中的字符串函数
MATLAB 提供了许多创建、组合、分析、比较和处理字符串的字符串函数。
下表是对 MATLAB 中字符串函数的简要说明:
详细例子
接下来对上述的字符串的函数进行举例说明:
格式化字符串
在MATLAB中建立一个脚本文件,输入下述代码:
A = pi*1000*ones(1,5);
sprintf(' %f
%.2f
%+.2f
%12.2f
%012.2f
', A)
运行该文件,显示以下结果:
ans =
3141.592654
3141.59
+3141.59
3141.59
000003141.59
加入字符串
在MATLAB中建立一个脚本文件,输入下述代码:
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};
% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")
运行该文件,显示以下结果:
str1 =
red blue green yellow orange
str2 =
red , blue , green , yellow , orange
查找和替换字符串
在MATLAB中建立一个脚本文件,并输入下述代码:
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 names
first_names = strtok(students)
运行该文件,显示以下结果:
new_student =
'Poulomi Dutta'
first_names =
Columns 1 through 6
'Zara' 'Neha' 'Monica' 'Madhu' 'Madhu' 'Bhawna'
Columns 7 through 10
'Nuha' 'Reva' 'Sunaina' 'Sofia'
比较字符串
在MATLAB中建立一个脚本文件,输入下述代码:
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