此处两种数据均可用class()函数判断类型
结构数据
定义
结构数据构成的矩阵,结构数据可理解为C++中结构体
创建方式
①直接创建
student(1).id='1';
student(1).name='a';
student(2).id='3';
student(2).name='b';
student
捕获.PNG
②struct函数
括号内参数需一一对应
键值对的值的集合需要为单元数据的形式即用{}
参考结果中score字段的值
id={1 2 3};
name={'a' 'b' 'c'};
score=[11 12 13];
struct('id',id,'name',name,'score',score)
注意
捕获.PNG
单元数组
定义
和普通矩阵类似,但是可保存不同类型的数据
创建方式
①赋值创建
此处创建两个矩阵b1 b2
注意:赋值左边圆括号时,右侧为花括号 ; 左侧花括号时,右侧不需要花括号
clear all;
b1(1,1)={1};
b1(1,2)={[1 2 3;4 5 6]};
b1(2,1)={'c'};
b1(2,2)={[7 8 9]};
b1
b2{1,1}=1
b2{1,2}=[1 2 3;4 5 6];
b2{2,1}='c';
b2{2,2}=[7 8 9]
b2
②直接创建
直接{}括起来就好了
b1={1,[1 2 3;4 5 6]; 'c',[ 7 8 9]}
③cell函数
创建完成后可进行单独赋值
clear all;
b=cell(3,3)
image.png
访问方式
单个元素
clear all;
b1(1,1)={1};
b1(1,2)={[1 2 3;4 5 6]};
b1(2,1)={'c'};
b1(2,2)={[7 8 9]};
b1(1,2)
b1{1,2}
矩阵名(a,b) 矩阵名{a,b}
这两种方式区别在于,(a,b)只能看到元素,而{a,b}可看到元素的值
image.png
全部访问
cellplot()函数
image.png
celldisp()函数
image.png
区别
在我看来,两个区别在于矩阵元素中的关系。结构数组中,某一列的值都是属于一个字段的,而单元数组中元素之间并无关系。