Why do I get "cannot load an object of class 'compactcl?assificati?on

Illustration
Sam Cook - 2022-04-04T11:23:21+00:00
Question: Why do I get "cannot load an object of class 'compactcl?assificati?on

Why do I get "cannot load an object of class 'compactcl?assificati?onECOC'" after compiling a standalone application of a machine learning model?   I have a trained machine learning model saved as a MAT file that is loaded in my App Designer application. When I compile the app into a standalone application with MATLAB Compiler, I get the following error when running it:   cannot load an object of class 'compactclassificationECOC'  

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

During the compilation process, a dependency analysis is run to pick up files that the code relies on. In this case, the dependent functions are specified as a value in the trained model struct loaded through a MAT file. This causes the analysis to miss the necessary files.
 
 
To work around this, we can add a "function pragma" to the function to make the dependency explicit:
   % App designer method
          function myAppCallback(app, event)
              %#function classreg.learning.classif.CompactClassificationECOC
              [  additional code  ]

The "function pragma" was added based on the "ClassificationSVM" values in the trained model struct:

trainedModel = 

struct with fields:
predictFcn: @(x)exportableModel.predictFcn(predictorExtractionFcn(x))
ClassificationSVM: [1×1 classreg.learning.classif.CompactClassificationECOC]
About: 'This struct is a trained model exported from Classification Learner R2017b.'
HowToPredict: 'To make predictions on a new predictor column matrix, X, use: ...

Multiple functions can be added to the pragma with spaces:

%#function classreg.learning.classif.CompactClassificationECOC classreg.learning.regr.RegressionModel


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!