IT@程序员猿媛互联网@时事传播读书

Matlab系列 --- Matlab基础 数据类型(二)

2019-04-21  本文已影响19人  307656af5a04

上一次我们学习了matlab基础数据类型的数值类型、逻辑类型、字符和字符串以及函数句柄,今天呢,我们学习接下来的数据类型。

一、单元数组类型

单元数组时一种比较特殊的数据类型,每个元素都以单元的形式存在。在matlab中,采用大括号({})建立单元数组,也可以采用函数cell()来建立单元数组。在获取单元数组的元素时,也采用大括号表示下表。

建立单元数组实例:

clear all;
c={'中国','China';[1 2 3 4 5],100}
%获取1行1列的元素
c{1,1}  
%获取2行1列的元素
c{2,1} 
 %第2行2列的元素赋值为孔
c{2,2}=[] 

用函数建立单元数组

1.函数cell()
实例:

clear all;
%建立2行3列的数组
c=cell(2,3)          
c{1,1}=[1:3;3:5]  
c{2,2}='China'
c{2,3}='Robin'
c{2,1}=100

2.函数celldisp()

%显示单元数组的内容
clear all;
c={eye(2),'China';[1:4],100}
celldisp(c)
celldisp(c,'mycell')

3.函数cellplot()

clear all;
%将单元数组以彩色图形显示
c={'中国','China';[1:4],100}
figure;
out=cellplot(c,'legend') 

实验结果:

cellplot() 实验结果

对数组的元素进行添加或者删除

clear all;
%建立2行2列的单元数组
c={'中国','China';[1:4;2:5],10}   
%单元数组的扩充
%对2行4列的元素添加值
c{2,4}=100 
%第一行元素
c(1,:) 
%删除第三列
c(:,3)=[] 
d={'北京','Beijing';[],3}
%单元数组的合并
e=[c,d] 
%删除第二行
e(2,:)=[] 

4.函数iscell()和函数num2cell()

clear all;
%矩阵
a=[2.3 4.5 9.2;3.5,3.2 8.5]   
%将矩阵转换为单元数组
c=num2cell(a)       
%判断是否未单元数组
%是返回0,      
iscell(a)  
iscell(c)

5.函数cell2struct()

clear all;
c={'Dr. Zhang',1.80,20110001,[89 90 96]}
fields={'name','height','num','score'}
%将数组转换为结构体变量
s=cell2struct(c,fields,2) 

实验结果:

函数cell2struct()实验结果

二、结构体数据类型

结构体是按照成员变量名组织起来的不同数据类型数据的集合。结构体类似于C语言的结构体数据。每个成员变量用指针操作符"."表示,例如A.name表示结构体变量A的name成员变量。在matlab中结构体类型常用的函数如下所示:

结构体类型常用的函数

结构体类型

命令行产生结构体变量
clear all;
%创建一个结构体
s1=struct('type',{'big','little'},'color',{'red'},'data',{[1 2 3;2 3 4] [1:4]})
s1(1)
s1(2)

实验结果:


实验结果
clear all;
%创建一个结构体
s1=struct('type',{'big','little'},'color',{'red'},'data',{[1 2 3;2 3 4] [1:4]})
%删除结构体s1种的color并赋值给s2
s2=rmfield(s1,'color')
%同时删除结构体s1种的color与type并赋值给s3
s3=rmfield(s1,{'type','color'})

实验结果:


函数rmfield()实验结果

实例:

clear all;
%创建一个结构体
s=struct('one',1,'two',2)
% 1
f1=isstruct(s)
% 1
f2=isfield(s,'one')
% 0
f3=isfield(s,'three')
% 1   0   0   0
f4=isfield(s,{'one','pi','Two','three'})

实例:

clear all;
%创建一个结构体变量
s=struct('one',1,'two',2,'three',3,'four',4)
%获取结构体变量的名称
f1=fieldnames(s)
%对结构体变量按字母顺序排序
f2=orderfields(s)
实验结果
clear all;
s1=struct('one',1,'two',2)
%获取结构体变量one的值
f1=getfield(s1,'one')
s2=struct('name',{'Robin','Tom'},'sex',{'Male','Male'},'score',[87 89 94])
%获取结构体变量Tom name的值
f2=getfield(s2,{1,2},'name')
%得到Tom male 的名字
f3=s2(1,2).name
% 获得Tom male 的分数为89
f4=getfield(s2,{1,2},'score',{2})
% 获得Tom male 的分数为89
f5=s2(1,2).score(2)

实例:

clear all;
s1=struct('one',1,'two',2)
%将结构体变量one 设置为3
s2=setfield(s1,'one',3)
s3=struct('name',{'Robin','Tom'},'sex',{'Male','Male'},'score',[87 89 94])
% 修改Tom的score
s4=setfield(s2,{1,2},'score',[78 76 99 81])
s3(1,2).score
s4(1,2).score
clear all;
%建立结构体变量
s(1).name='Robin';
s(1).sex='Male';
s(1).num=20110001;
s(1).room=203;
s(2).name='Tom';
s
%将结构体变量转换为单元数组
c=struct2cell(s)

好了,matlab的数据类型学到这里就结束了,喜欢的朋友可以给我点个赞哦!!!

上一篇下一篇

猜你喜欢

热点阅读