matlab结构数组和单元数组

此处两种数据均可用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

区别

在我看来,两个区别在于矩阵元素中的关系。结构数组中,某一列的值都是属于一个字段的,而单元数组中元素之间并无关系。

你可能感兴趣的:(matlab结构数组和单元数组)