Matlab学习笔记(3)

学习目标:

1.深入掌握单元数组的各种使用方法。

让我们开始吧!!

clear all
c = {'卡卡','Kaka';[5 4 7 8 3],7};
c{1,1}
c{1,2}
c{2,1}
c{2,2} = []

比如说这段代码,创造了一个单元数组为c,然后里面可以是各种各样的东西。

比如中文,英文,数字集合,单个数值。都可以

然后呢,你也可以给它在进行定义,比如最后一行,把c{2,2}的位置,变成了空集合。

接下来用函数来创造单元数组,我们今天的目的是深入掌握数组的使用方法

clear all
c = cell(3,3)
c{1,1} = [1:3;3:5]
c{2,2} = 'Kaka'
c{2,3} = 'Ronadol'
c{2,1} = 3
celldisp(c)
celldisp(c,'kakacell')

比如说,首先第二行是创建一个3行3列的单元数组,默认为空。

第三行~第六行是为里面的空集合放入内容。

倒数第二行是显示单元数组的元素

最后一行是把单元数组的名称改为耳朵的名字。

下面这个是图形化显示的语法,用到了cellplot。后面也是固定搭配。

figure;
out = cellplot(c,'legend')

下面这个是单元数组的扩张和缩减

clear all
c ={'卡卡','Kaka';{1:4;4:8},77}
c{2,4}=3
c(1,:)
c(:,3)=[]
d={'Kaka','大神';[],44}
e=[c,d]
e=(2,:)=[]

首先创建2X2的c单元数组,里面是各种各样的内容。

然后想添加的话,可以在数组中2行4列的地方加入3这个内容。那么前面的地方就自动为空集合。

第四行代码的意思是显示第一行的所有元素。

第五行代码的意思是让第三列的所有元素为空集合,这样系统内部就默认为0,自动删除掉了。

第六行代码的意思是引入新的2X2的d单元数组。

第七行代码的意思是把他们两个合并为e数组。

最后一行的意思是对新的e单元数组的第二行赋值为0.

下面是将矩阵转换为数组,并且对它进行测试。

clear all
a=[4 6 8;6 6 7]
c=num2cell(a)
iscell(a)
iscell(c)

首先定义一个矩阵a

然后用num2cell函数将a矩阵转换为单元数组

最后用iscell函数来分别判断a和c是否为单元数组。

值为1是单元数组,相反,值为0不是单元数组。

下面是单元数组转为结构体变量。

clear all;
c={'kaka',184,25}
fields={'name','shengao','years'}
s=cell2struct(c,fields,2)

首先是创建一个1X3的c单元数组,

接下来把c单元数组引入fields的结构体变量的成员中。

最后一行的意思是将单元数组转换为结构体变量。

接下来,深入学习结构体变量,今天的结构体变量非常的重要。

下面是创建结构体变量的代码

clear all
s1=struct('fengge',{'big','little'},'yanse',{'blue'},'shuju',{[8 8 9;7 6 5] [1:9]})
diyi=s1(1)
dier=s1(2)
shan2=rmfield(s1,'yanse')
san2and3=rmfield(s1,{'yanse','shuju'})

首先第二行的意思是创建fengge,yanse,shuju这三个结构体

第三四行的意思是diyi代表结构体中第一行的所有变量,dier代表结构体中的第二行的所有变量。

第五行的意思是删除yanse这一列的变量。

最后一行是删除yanse和shuju这两列的变量。

接下来是判断是不是结构体变量,判断是不是结构体变量成员。

s = struct('hehe',1,'haha',2)
f1 = isstruct(s)
f2 = isfield(s,'hehe')
f3 = isfield(s,'pipi')
f4 = isfield(s,{'hehe','pipi','haha','kuku'})

这个呢,就是首先创建结构体,hehe和haha,并且赋值。

之后用isstruct来判断f1是否为结构体变量成员。

同样的方法测试f2,f3,f4

接下来是讲解,如何按照成员变量的字母顺序来排序

s = struct('yi',0,'er',1,'san',2,'si',3)
f1=fieldnames(s)
f2=orderfields(s)

首先创建结构体yi,er,san,si

之后用语法fieldnames来表示s结构体,它是按照信息显示的。

然后呢用语法orderfields来表示s结构体,它是按照成员变量的字母顺序排序的。

接下来是获取具体的某个实际成员变量的值

s = struct('xingming',{'kaka','ronadol'},'xingbie',{'man','man'},'fenshu',[67 90 99]);
s(1).xingming
s(1).xingbie
s(1).fenshu
s(1).fenshu(3)
pingjunfen = mean(s(1).fenshu)
zuigaofen = max(s(1).fenshu)

首先创建结构体,xingming,xingbie,fenshu

然后呢s(1)的意思是取第一个,后面是定义的结构体成员。

mean的意思是取平均分

max的意思是取最高分。

接下来是对结构体成员重新赋值

s1=struct('haha',7,'hehe',8)
s2=setfield(s1,'haha',9)

意思是创建s1结构体,

然后用语法setfield来对haha重新赋值为9.

最后呢,我们学习如何把结构体变成单元素组。

s = struct('xingming',{'kaka','ronadol'},'xingbie',{'man','man'},'fenshu',[67 90 99]);
c=struct2cell(s)

这样就把结构体的每行变成数组了。

输出就会显示xingming,xingbie,还有分数。

今天就到这!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值