- You can use "coder.write" and "coder.read" to store and read structured data: https://www.mathworks.com/help/coder/ref/coder.write.html, https://www.mathworks.com/help/coder/ref/coder.read.html.
- You can use "coder.load" if you are ok with the contents of a file being read only once during code generation and stored as a constant in the generated code itself.
- You can use "fscanf" if you can put your data in a text file with a simple-enough format: https://www.mathworks.com/help/matlab/ref/fscanf.html#refsect-extended-capabilities
Error in Matlab2017b coder: the extrinsic function "size" is not available for standalone code generation.
4 次查看(过去 30 天)
显示 更早的评论
m-scripting file is executing without errors. While generating the C-code using "Coder", i am getting the errors for the functions "Size" and "xmlread". Erros is attached for reference.
.
2 个评论
Matan Silver
2023-9-14
Hi Pradeep,
To best investigate some of these errors and help you resolve them, could you provide a short reproduction script that will produce these errors?
I will try to help as much as I can with the information here. Are you explicitly declaring certain functions extrinsic using "coder.extrinsic"? If so, the errors relating to standalone code generation are accurate--standalone code can't use the output of extrinsic functions because that requires calling into MATLAB (and standalone code must work without MATLAB).
Regarding the function "xmlread" which you mentioned--"xmlread" does not support code generation. The development team is aware of this limitation. There are a few workarounds to the lack of support for now:
None of those solutions will read from an xml file, but if you use a different file format for this application, you might be able to use one of those options.
Let me know if you can upload some reproduction examples. Thanks,
Matan
采纳的回答
Denis Gurchenkov
2023-9-26
编辑:Denis Gurchenkov
2023-9-26
size() is supported for code generation, this is one of the basic functions that always works. To understand why the error happens, one needs to see the source code of the example. This is either a bug or some misconfiguration. Maybe you try to call size on the return value of an extrinsic function? If so, read the chapter on extrinsic functions here
As Matan said, xmlread() does not support code generation. You'd need to use coder.ceval to call to some thrid-party xml reading library.
> Any supporting documnet which contains the list of unsupported functions for the Matlab coder.
Documentation for each MathWorks toolbox function has the "extended capabilities" section at the bottom, and if the function supports code generation, that capability is listed there, along with any limitations. If there is no extended capabilities section, then the function does not support code generation.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!