MATLAB: Why the ‘mphload’ can work in .m doesn’t work in .exe? (error: undefined function ‘string2char’)

charcomsolMATLAB Compilermphloadstringthe symbolic toolbox functionstoolbox

this code and the function work well in a .m file, but don't work in a matlab complier made .exe file. error window says undefined function 'string2char' for 'char' type input arguments. which is confusing.
cd(fpath);
file_s0=fullfile(fpath,'\model.mph');
% string(file_s0);
models=mphload(file_s0);
'fpath' has the right content, I load a .mat file with it.
I'm sure MATLAB has been connected to a COMSOL Multiphysics Server before this code. I use the same .exe to start the COMSOL server and connect it to MATLAB.
I try to turn 'file_s0' into string before pass it to 'mphload' with code "string(file_s0); " and "cellstr(file_s0);" doesn't solve the promblem, same error occured.
tryed "char(file_s0);" before mphload, make no difference.
someone meet 'Undefined function 'mphload' for input arguments of type 'char'. and re-installing the comsol and matlab solve the problem. Maybe I should try this today.

Best Answer

  • problem solved.
    I add all m files and p files in fold 'COMSOL53a\Multiphysics\mli' in matlab compiler, then it works.