summaryrefslogtreecommitdiffstats
path: root/install_mpt3.m
diff options
context:
space:
mode:
authorYanzhenXiangRobotics <xyz000327@gmail.com>2023-04-25 20:42:56 +0200
committerYanzhenXiangRobotics <xyz000327@gmail.com>2023-04-25 20:42:56 +0200
commitc11fe8fc6094ce3823a4a8b9b78ea8ea81e65778 (patch)
treeb5dcaf73bb9842ee72e457a3bac7ce6589b42122 /install_mpt3.m
parentADD: .gitignore (diff)
downloadmpc_pe-c11fe8fc6094ce3823a4a8b9b78ea8ea81e65778.tar.gz
mpc_pe-c11fe8fc6094ce3823a4a8b9b78ea8ea81e65778.zip
FIX: .gitignore
Diffstat (limited to 'install_mpt3.m')
-rw-r--r--install_mpt3.m108
1 files changed, 108 insertions, 0 deletions
diff --git a/install_mpt3.m b/install_mpt3.m
new file mode 100644
index 0000000..97981dd
--- /dev/null
+++ b/install_mpt3.m
@@ -0,0 +1,108 @@
+%% installation of tbxmanager with all submodels required for MPT
+%
+
+clc;
+disp('----------------------------------------------');
+disp('Installation of MPT using the Toolbox manager.');
+disp('----------------------------------------------');
+disp(' ');
+fprintf(['Choose the installation directory where to install the Toolbox manager.\n',...
+ 'A new folder "tbxmanager" is going to be created in the specified location.\n',...
+ 'If you do not specify the folder, the Toolbox manager will be installed in the current directory.\n']);
+
+% get the installation folder
+default_dir = pwd;
+c = uigetdir(pwd);
+if isequal(c,0);
+ fprintf(['No directory has been provided.\n',...
+ 'Installing the toolbox manager in the current directory "%s"?\n'],default_dir);
+ c = default_dir;
+end
+
+% create a new directory in that folder
+d = [c,filesep,'tbxmanager'];
+if isequal(exist(d,'dir'),7)
+ error('The installation directory "%s" already exists.\nPlease, remove or rename the folder or change the installation path.',d);
+end
+disp('Creating the directory "tbxmanager".');
+out = mkdir(d);
+if ~out
+ error(['An error appear when trying to create the folder "%s".\n',...
+ 'Please, install the Toolbox manager manually.'],c);
+end
+
+% enter that directory
+cd(d);
+
+% remove MPT2 or YALMIP
+disp(' ');
+disp('Removing toolboxes that may conflict with MPT from the Matlab path.');
+rmpath(genpath(fileparts(which('mpt_init'))));
+rmpath(genpath(fileparts(which('yalmipdemo'))));
+
+
+% download the tbxmanager
+disp(' ');
+disp('Downloading the Toolbox manager from the internet.');
+[f, c] = urlwrite('http://www.tbxmanager.com/tbxmanager.m', 'tbxmanager.m');
+rehash;
+
+if isequal(c,0)
+ error('Could not download the Toolbox manager from the internet. The installation cannot continue.');
+end
+
+% install all required modules
+tbxmanager install mpt mptdoc cddmex fourier glpkmex hysdel lcp sedumi yalmip
+
+% create the initialization file to set the path
+disp(' ');
+disp('Creating the initialization file "startup.m".');
+p = which('startup.m');
+if isempty(p)
+ p = [d,filesep,'startup.m'];
+end
+fid = fopen(p,'a');
+if isequal(fid,-1)
+ error(['Could not modify the initialization file "startup.m".',...
+ 'Edit this file in the folder "%s" manually and insert there the line: tbxmanager restorepath.'],p);
+end
+fprintf(fid,'tbxmanager restorepath\n');
+fclose(fid);
+disp('File has been created.');
+
+% get back to the original directory
+cd(default_dir);
+
+% add path to tbxmanager
+disp(' ');
+disp('Adding path to Matlab.');
+addpath(d);
+
+% save path for future
+disp(' ');
+disp('Saving path for future sessions.');
+status = savepath;
+
+if status
+ fprintf('Could not save the path to a default location,\nplease provide a location where you want to save the path.');
+ cn = uigetdir(pwd);
+ if isequal(cn,0)
+ disp(' ');
+ fprintf('No directory specified, saving the path to the current directory "%s".\n\n',default_dir);
+ cn = default_dir;
+ end
+ sn = savepath([cn,filesep,'pathdef.m']);
+ if sn
+ error(['Could not save the path automatically.\n',...
+ 'Please, open the "Set Path" button in the Matlab menu and save the path manually to some location.']);
+ end
+end
+
+disp(' ');
+disp('Installation finished.');
+disp('Next time you start Matlab the toolboxes will be automatically initialized.');
+
+% initialize MPT
+disp(' ');
+disp('Initializing the MPT.')
+mpt_init;