MATLAB Coder does not recognize dot notation in struct member assignment
1 次查看(过去 30 天)
显示 更早的评论
% 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
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.
0 个评论
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
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Structures 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!