《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量

  • 字符串
    字符串的连接
s1 = "we should study hard"
s2 = "and we should never forget out country"
w = [s1, s2]
>>
	w = 
	"we should study hard and we should never forget out country"

MATLAB可以实现实现字符串的垂直连接,但是需要两个字符串长度相同。若不相同,连接方法在第三小节介绍。
在这里插入图片描述

s1 = "我们明天去郊游"
s2 = "8点钟出发"
[s1, s2]
>>
	"我们明天去郊游8点钟出发"

字符串元素提取
同数组寻址

字符串操作
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第1张图片
字符串垂直连接:strvcat(s1, s2)或者char(s1, s2)
查找字符函数findstr的调用格式:k = findstr(s1, s2)s1,s2都是可被查找的对象;
查找字符函数strfind的调用格式:k = strfind(text, pattern)在text中寻找pattern。返回值是pattern在text中的位置;
替换函数strrep的调用格式:s = strrep(s1, s2, s3)把s1中的s2用s3替换。
在这里插入图片描述

word = "read"
strrep(word,"r","R")

字符串的转换
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第2张图片
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第3张图片
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第4张图片

图片来源https://blog.csdn.net/qq_35318838/article/details/78780412

在这里插入图片描述

str = "We are friends E";
str = lower(str);
strl = findstr(str, "e");
l = length(strl);
fprintf("e的数量是%d",l)
>>
	e的数量是4

在这里插入图片描述

s = "we have   n  friends";
s = lower(s);
s = deblank(s) #删除其中的空格
n = find(s == " ")
s(n-1) = upper(s(n-1))
  • 单元型变量
    单元型变量类似于python列表,但是用{ }来容纳([ ]给了数组)
A = {"为人民服务", 100+250*i, [90,85,55;67,70,102]}

使用cell(N)生成N*N阶空单元型变量
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第5张图片

单元型变量内容的显示或提取
可直接显示
也可使用celldisp()

celldisp(C)

以C为变量名显示单元型变量C中的内容

celldisp(C, "name")

以name为变量名显示单元型变量C的内容
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第6张图片
单元型变量内容的提取与数组元素的提取方法相似,只是单元型变量单元内容需要用大括号标识。
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第7张图片

单元型变量的变维处理
单元型变量的变维处理与矩阵的变维处理完全一样,可以直接进行拼接,也可以用函数reshape()来实现变维处理

reshape(X, M, N)

说明:将X中的所有元素分配到一个M*N新单元型变量中
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第8张图片
注释:n = find(aa1(m) == y1)找出y1中第几个元素等于aa1(m)(写成y1 == aa1(m)更好理解?)
在这里插入图片描述

A = {"Motor28C",[3 9 7 2];Testd6,[6 5 1]}
  • 结构型变量
    类似于python的字典
    创建结构型变量有两种方法

《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第9张图片
2.使用struct()函数生成结构型变量
调用格式如下

s = struct("key1",value1,"key2",value2)

在结构型变量中添加成员变量
1.可直接添加并赋值
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第10张图片
2.使用setfield函数给某个成员变量插入新值

setfield(student(1),"height",1.80)

在结构型变量中删除成员变量

student = rmfield(student,"age")

在结构型变量中提取成员变量
第一种是直接提取
《MATLAB实用教程》第二章:MATLAB数据结构——字符串、单元型变量、结构体变量_第11张图片
第二种使用getfield函数调用结构型变量的成员变量

getfield(student(1),"tel")

在这里插入图片描述

student = struct("name","Alfred","SSN","555-12-3456","email","[email protected]","testGrade",[55,45,58])
student.testGrade(2) = 53
rmfield(student,"SSN")

你可能感兴趣的:(MATLAB学习)