定义用于代码生成的结构数组
确保字段一致性
对于代码生成,在MATLAB中创建数组时®结构,数组元素中对应的字段必须具有相同的大小、类型和复杂度。
一旦创建了结构数组,就可以使用coder.varsize
.看到声明可变大小的结构字段.
使用repmat定义具有一致字段属性的结构数组
可以使用MATLAB从标量结构创建结构数组repmat
函数,该函数复制并平铺现有标量结构:
创建标量结构,如中所述为代码生成定义标量结构.
调用
repmat
,传递标量结构和数组的尺寸。使用标准数组索引和结构点表示法为每个结构赋值。
例如,下面的代码创建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;...