Generate Code for classes methods

8 次查看(过去 30 天)
Net Fre
Net Fre 2024-7-9
回答: Pratyush 2024-7-11
Hi.
This is more of a clarification question than a "how to", because I got the MATLAB answer and it works, but I have a question about it.
I have a class with several properties and methods. I would like to use code generation to make my script, which uses the class, run faster (specifically for now - using the .mex function). I saw that the solution for generating code from a class method is creating a function that constructs the class, and then calls the method, as described here.
My question is - doesn't it make things much less efficient? the code now, instead of calling just the method itself each time, the function needs to create the class just to call it - every time I want to use it. It becomes even more of a problem if I want to use several methods of the same class, each creating the class every time I call it.
Am I missing something? Is there a more efficient way to do this?
Thank you very much!

回答(1 个)

Pratyush
Pratyush 2024-7-11
Hi,
Creating a class instance every time you want to call a method can indeed introduce overhead and reduce efficiency. You can try out the following to optimize the process:
  • Use a persistent variable to store the class instance.
  • This avoids the overhead of creating the class every time a method is called.
  • If your class inherits from 'handle', it can be modified without needing to recreate it, which can be more efficient.
  • Utilize directives like 'coder.varsize' and 'coder.inline' to help MATLAB optimize the code generation process.
Hope this helps.

类别

Help CenterFile Exchange 中查找有关 Memory Usage 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by