'Dot indexing not supported' error shows up only when running executable

5 views (last 30 days)
Hey,
I see this 'Dot indexing is not supported for variables of this type' error only when running an excutable created from a matlab script. I don't see such error when executing the matlab script itself.
I figured out this snippet here was causing the error. When I comment it out in the matlab script and create an executable, the executable runs fine.
Please, help with this error. Thanks. Also, I use MATLAB 2020b.
  6 Comments
Walter Roberson
Walter Roberson on 9 Mar 2022
Are you trying to train a model inside a .exe ? Most training functions cannot be compiled (some can be compiled.)

Sign in to comment.

Accepted Answer

Steven Lord
Steven Lord on 9 Mar 2022
Let me guess, you're calling load to load the LinearModel object from a MAT-file. Please see the Tip in the "Fixing Callback Problems: Missing Functions" section on this documentation page. When MATLAB Compiler analyzed your code to determine what needed to be included in the MCR, there was no indication in the code itself that it needed to include the definition of the LinearModel class in the application. Therefore it didn't, and when you called load the application didn't know how to turn the loaded data into an instance of the object.
If you use the -a argument or the %#function pragma to tell MATLAB Compiler that it needs to include the class definition in the application, when you load the object from the MAT-file the application will know the "recipe" for turning that data back into an object.
  4 Comments
Steven Lord
Steven Lord on 9 Mar 2022
If you created the LinearModel object using fitlm or stepwiselm as stated on the documentation page telling MATLAB to include that function in your application may be sufficient. I have not tried this, though.
%#function fitlm
%#function stepwiselm
Or you may be able to just include the class definition using its name.
%#function LinearModel

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!