MATLAB: Matlab Production Server Error Using Load Command

MATLAB Production Server

Hello,
When using the load command in a script compiled to a CTF file running on Matlab Production Server, for example:
dataset_load = load('results/dataset_scaled_fixedBins.mat');
I get the following error:
Error: Unable to read file 'results/dataset_scaled_fixedBins.mat'. No such file or directory.
I put the .mat file in the auto_deploy folder, but it is not found. I then put the script in the script's .m file path
C:\\Program Files\\MATLAB\\MATLAB Production Server\\R2019b\\script\\mps1\\.mps_deployed\\phase22_generate_histogram2_27\\phase22_gene\\phase22_generate_histogram2.m
but that does not work either.
Where does a script look when using the load command from a CFT file?

Best Answer

I ran into the same issue while trying to load a file in a deployed application. Because you know the structure of the folders you deploy, you can make use of Matlab's mfilename function. The following worked for me:
path = mfilename('fullpath'); % retrieve full path of current script
path = strrep(path,'\[folder]\[current_function]',''); % remove part of the path
path = fullfile(path, 'results\dataset_scaled_fixedBins.mat'); % add new end to the path
load(path);
Where [folder]\[current_function] represent the folder structure of where this code resides, while 'results\dataset_scaled_fixedBins.mat' is the structure that is added to complete the path.
I hope this helps!