MATLAB Coder does not recognize dot notation in struct member assignment
1 view (last 30 days)
Show older comments
% 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 Comment
Konstantinos Athanasiou
on 11 Aug 2022
Hi Aaron. Could you provide the codegen command you are using for the above example?
Answers (2)
Benjamin Thompson
on 11 Aug 2022
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 Comments
Konstantinos Athanasiou
on 11 Aug 2022
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 Comments
See Also
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!