What are the limitation on arrays of objects with MATLAB coder?

10 views (last 30 days)
Byron Caudle
Byron Caudle on 4 Dec 2017
Edited: Walter Roberson on 17 Mar 2020
I read on the support page https://www.mathworks.com/help/simulink/ug/how-working-with-matlab-classes-is-different-for-code-generation.html that Arrays of Objects are not supported. Do this mean that I can't have a class with a property that is an array of objects (of another class)? Or does is mean that I can't have arrays of objects at all (not even in my main function)? I am thinking there must be some limited arrays of objects support, otherwise code generation from OO code would be pretty useless.
How does this limitation work with the Java coder?

Answers (1)

Denis Gurchenkov
Denis Gurchenkov on 22 Feb 2018
The later is correct. As of R2017b, MATLAB Coder does not support arrays of objects, so if your MATLAB code creates an array of objects, such as
x = [MyClass(1), MyClass(2)];
or
x = repmat(MyClass(1), [3 4]);
then code generation will fail with an error message (presuming that there is a class MyClass in your code).
The only workaround as of now is to use cell arrays of objects, that is,
x = {MyClass(1), MyClass(2)};
should compile fine.

Community Treasure Hunt

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

Start Hunting!

Translated by