《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点钟出发"

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

字符串操作
在这里插入图片描述
字符串垂直连接: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")

字符串的转换
在这里插入图片描述
在这里插入图片描述
图片来源https://blog.csdn.net/qq_35318838/article/details/78780412

图片来源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阶空单元型变量

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

celldisp(C)

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

celldisp(C, "name")

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

单元型变量内容的提取与数组元素的提取方法相似,只是单元型变量单元内容需要用大括号标识。
在这里插入图片描述

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

reshape(X, M, N)

说明:将X中的所有元素分配到一个M*N新单元型变量中
在这里插入图片描述
注释:n = find(aa1(m) == y1)找出y1中第几个元素等于aa1(m)(写成y1 == aa1(m)更好理解?)
在这里插入图片描述

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

在这里插入图片描述
2.使用struct()函数生成结构型变量
调用格式如下

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

在结构型变量中添加成员变量
1.可直接添加并赋值
在这里插入图片描述
2.使用setfield函数给某个成员变量插入新值

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

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

student = rmfield(student,"age")

在结构型变量中提取成员变量
第一种是直接提取
在这里插入图片描述
第二种使用getfield函数调用结构型变量的成员变量

getfield(student(1),"tel")

在这里插入图片描述

student = struct("name","Alfred","SSN","555-12-3456","email","newmana@163.com","testGrade",[55,45,58])
student.testGrade(2) = 53
rmfield(student,"SSN")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值