I recommend converting to use system()
path_to_matlab = '"C:\Program Files\MATLAB\R2016b\bin\matlab.exe"';
try_again = true;
while try_again
try
cmd = sprintf('"%s" -r "foo"', path_to_matlab);
[status, result] = system(cmd);
if status == 0; try_again = false; end
catch ME
end
if try_again
warning('MATLAB was not found. Please locate the MATLAB R2016b installation.');
[f2016, d2016] = uigetfile('*.exe','Locate MATLAB R2016b Executable');
if isnumeric(f2016)
fprintf('Canceling');
break
end
path_to_matlab = fullfile(d2016, f2016);
end
end
It is not clear why you are starting a new MATLAB session ?
You should consider using
if ispc()
path_to_matlab = fullfile(matlabroot, 'bin', 'matlab.exe');
file_select_ext = '*.exe');
else
path_to_matlab = fullfile(matlabroot, 'bin', 'matlab');
file_select_ext = '*');
end
try_again = true;
while try_again
try
cmd = sprintf('"%s" -r "foo"', path_to_matlab);
[status, result] = system(cmd);
if status == 0; try_again = false; end
catch ME
end
if try_again
warning('MATLAB was not found. Please locate the MATLAB R2016b installation.');
[f2016, d2016] = uigetfile(file_select_ext, 'Locate MATLAB R2016b Executable');
if isnumeric(f2016)
fprintf('Canceling');
break
end
path_to_matlab = fullfile(d2016, f2016);
end
end
Best Answer