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

1 次查看(过去 30 天)
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 个评论
Walter Roberson
Walter Roberson 2022-3-9
Are you trying to train a model inside a .exe ? Most training functions cannot be compiled (some can be compiled.)

请先登录,再进行评论。

采纳的回答

Steven Lord
Steven Lord 2022-3-9
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 个评论
Steven Lord
Steven Lord 2022-3-9
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

请先登录,再进行评论。

更多回答(0 个)

产品

Community Treasure Hunt

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

Start Hunting!

Translated by