matlab中结构体和cell的区别

兄弟姐妹,请说下,matlab中结构体和cell的区别
最新回答
伸手碰阳光

2024-09-23 00:37:00

1、什么是单元阵列?

单元阵列又叫cell(元胞)阵列,以前见过“元胞数组”一词,其实是可以理解成阵列的,比如二维数组,可以理解成2行n列的矩阵或阵列。

2、单元/元胞阵列是如何构成的呢?

我们都熟悉阵列或矩阵的构成,比如一个m*n大小的矩阵,那么它有m行、n列,共有m*n个元素。如果我们只在实数范围内考虑,那么对应的每一个元素就是一个实数,这是一般的实矩阵。单元阵列也可以有m行n列,对应有m*n个元素。所不同的是单元阵列中每个元素是一个cell(元胞),而每个cell可以由不同数据格式的矩阵构成,构成每个cell的矩阵大小也可以不同,可以是一个元素,也可以是一个向量,也可以是一个多维数组。

3、如何创建一个单元阵列?

可使用cell函数创建一个空的单元阵列,具体可参考MATLAB中 help cell内容。也可以使用大括号创建,比如我们要创建一个1x3的单元阵列c,则c={A sum(A) prod(prod(A))},可以把A设为一个向量,具体各cell数据类型读者可以用c{1}/c{2}/c{3}读出来然后使用whos函数自己验证。其中prod是求积,若A为一个数组(或一维向量),则一个prod后即可求出所有元素之积,第二个prod则还为原结果。若A为一个矩阵,则第一个prod后针对各列求积,结果保留为一个数组,第二个prod则对该数组所有元素再求积,那么两个prod的结果即为对矩阵所有元素求积。

4、什么是结构体及其构成?

结构体可以理解为一种特殊的数据类型。一个结构体有若干结构变量或者域构成。每个结构变量/域类似于一个cell,结构变量可以由不同数据类型的数组构成,比如字符串、整型、浮点数……。此处只是可以借用cell的形式来理解结构变量,但二者绝不等同。

5、如何创建结构体?

可以使用struct函数创建结构体。我们定义结构体为str_array,

则str_array=struct('field1',val1,'field2',val2,……),其中field1、field2为域名,val1、val2为具体值。

6、单元阵列与结构体的不同之处。

结构体(也可称为结构体阵列)中可以使用域名来访问数据,而在单元阵列中则使用矩阵的索引操作。
≮陌路≯七

2024-09-23 04:50:35

cell元包是matlab中提供的一种数据类型,功能强大。 关于cell的创建: 1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}"{}" 2.使用cell创建cell,C= {C1 C2},这里C1和C2都是cell类型,直接把C1 C2作为一个cell得到的...