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

Sam Cook · Apr 4, 2022 · 1.9K views
Question
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 PhD Expert
Answered Nov 20, 2025
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
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!