MATLAB Coder does not recognize dot notation in struct member assignment
显示 更早的评论
% Unable to generate C Code using MATLAB Coder for simplified example function shown below. Error description states, "This assignment
% writes a 'double' value into a 'struct' type. Code generation does not support changing types through assignment. Check preceding
% assignment or input type specifications for type mismatches ".
function ExampleFunction() %#codegen
global SD
SD.a = 0.0;
SD.b = 1.0;
SD.a = SD.b;
end
1 个评论
Konstantinos Athanasiou
2022-8-11
Hi Aaron. Could you provide the codegen command you are using for the above example?
回答(2 个)
Benjamin Thompson
2022-8-11
0 个投票
See the article "Name the C Structure Type to Use With a Global Structure Variable" in the MATLAB help documentation. You need to register the struct type with coder and map struct variables to registered types.
Konstantinos Athanasiou
2022-8-11
The following codegen command compiles without errors for the provided example.
% codegen t -globals {'SD', struct('a', double(0), 'b', double(0))}
function r = t
global SD;
SD.a = 0.1;
SD.b = 0.2;
SD.a = SD.b;
r = SD.a;
end
类别
在 帮助中心 和 File Exchange 中查找有关 Algorithm Design Basics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!