主要内容

定义用于代码生成的结构数组

确保字段一致性

对于代码生成,在MATLAB中创建数组时®结构,数组元素中对应的字段必须具有相同的大小、类型和复杂度。

一旦创建了结构数组,就可以使用coder.varsize.看到声明可变大小的结构字段

使用repmat定义具有一致字段属性的结构数组

可以使用MATLAB从标量结构创建结构数组repmat函数,该函数复制并平铺现有标量结构:

  1. 创建标量结构,如中所述为代码生成定义标量结构

  2. 调用repmat,传递标量结构和数组的尺寸。

  3. 使用标准数组索引和结构点表示法为每个结构赋值。

例如,下面的代码创建X,一个1 × 3的标量结构数组。数组的每个元素都由结构定义年代,它有两个字段,一个而且b

...S.a = 0;S.b = 0;X = repmat(s,1,3);X(1)。一个= 1; X(2).a = 2; X(3).a = 3; X(1).b = 4; X(2).b = 5; X(3).b = 6;...

使用定义一个结构数组结构体

方法创建结构数组结构体函数,将字段值参数指定为单元格数组。每个单元格数组元素都是对应结构数组元素中字段的值。对于代码生成,结构中的对应字段必须具有相同的类型。因此,字段值单元格数组中的元素必须具有相同的类型。

例如,下面的代码创建一个1 × 3结构数组。对于结构数组中的每个结构,一个有类型而且b有类型字符

S = struct(“一个”, {1 2 3},“b”, {“一个”“b”“c”});

使用连接定义一个结构数组

若要创建小型结构数组,可以使用连接运算符、方括号([]),将一个或多个结构连接到一个数组中。看到创建、连接和扩展矩阵.对于代码生成,连接的结构必须具有相同的大小、类和复杂性。

例如,下面的代码使用连接和局部函数创建1 × 3结构数组的元素:

...W = [sab(1,2) sab(2,3) sab(4,5)];函数S = sab(a,b) S = a;b = b;...