文件帮助中心文件
代码生成器在以下情况下无法识别常量结构字段或数组元素:
字段或元素被分配内部控制构造
在以下代码中,代码生成器识别结构字段S.A.和S.B.是常数。
S.A.
S.B.
功能y = mystruct()s.a = 3;S.B = 5;Y =零(S.A,S.B);
如果在控制构造中分配任何结构字段,则代码生成器无法识别常量字段。此限制也适用于具有恒定元素的阵列。考虑以下代码:
功能y = mystruct(x)s.a = 3;如果x> 1 s.b = 4;别的S.B = 5;结尾Y =零(S.A,S.B);
代码生成器无法识别出来S.A.和S.B.是恒定的。如果启用可变大小,y被视为可变尺寸阵列。如果禁用可变大小,则代码生成器会报告错误。
y
常量使用非标量索引分配给数组元素
在以下代码中,代码生成器识别出来a(1)是恒定的。
a(1)
功能y = myArray()a = zeros(1,3);a(1)= 20;y = coder.const(a(1));
在以下代码中,因为a(1)使用非标索引分配,代码生成器无法识别a(1)是恒定的。
功能y = myArray()a = zeros(1,3);a(1:2)= 20;y = coder.const(a(1));
函数返回具有常量和不合作元素的结构或数组
对于具有常量和不合作字段的输出结构,代码生成器无法识别常量字段。这种限制也适用于具有常量和不合作元素的阵列。考虑以下代码:
功能y = mystruct_out(x)s = create_structure(x);y = coder.const(s.a);功能s = create_structure(x)s.a = 10;s.b = x;
因为create_structure.返回一个结构S.具有一个常量字段和一个不合作字段,代码生成器无法识别出来S.A.是恒定的。这Coder.Const.呼叫失败,因为S.A.不是恒定的。
create_structure.
S.
Coder.Const.
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
联系您当地的办公室