diff --git a/matlab/dynare_config.m b/matlab/dynare_config.m
index bcf97de2e760cec9d02812fbb9b5becf431b602d..ae534c29024018587208480d278759f78d097025 100644
--- a/matlab/dynare_config.m
+++ b/matlab/dynare_config.m
@@ -125,6 +125,11 @@ if isoctave || matlab_ver_less_than('9.3')
     p{end+1} = '/missing/isfile';
 end
 
+% strsplit is missing in Matlab<R2013a
+if ~isoctave && matlab_ver_less_than('8.1')
+    p{end+1} = '/missing/strsplit';
+end
+
 P = cellfun(@(c)[dynareroot(1:end-1) c], p, 'uni',false);
 
 % Get mex files folder(s)
@@ -242,4 +247,4 @@ end
 % Initialization of the dates and dseries classes (recursive).
 initialize_dseries_toolbox;
 
-cd(origin);
\ No newline at end of file
+cd(origin);
diff --git a/matlab/missing/strsplit/private/ischarint.m b/matlab/missing/strsplit/private/ischarint.m
new file mode 100644
index 0000000000000000000000000000000000000000..d325015d4d05a60b063dbd6b17767041c4e02441
--- /dev/null
+++ b/matlab/missing/strsplit/private/ischarint.m
@@ -0,0 +1,27 @@
+function l = ischarint(x)
+
+% Returns true if and only if char x represents an integer.
+
+% Copyright © 2018 DynareTeam
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+s = warning;
+warning off;
+
+l = isint(str2double(x));
+
+warning(s);
\ No newline at end of file
diff --git a/matlab/missing/strsplit/private/ischarnum.m b/matlab/missing/strsplit/private/ischarnum.m
new file mode 100644
index 0000000000000000000000000000000000000000..57b7c7e8cd308c6e400b76f49b88b61fad83dad3
--- /dev/null
+++ b/matlab/missing/strsplit/private/ischarnum.m
@@ -0,0 +1,35 @@
+function l = ischarnum(x)
+
+% Returns true if and only if char x represents a real number.
+
+% Copyright © 2018 DynareTeam
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+l = false;
+
+s = warning;
+warning off;
+
+number = str2double(x);
+
+warning(s);
+
+if ~isempty(number)
+    if isreal(number)
+        l = true;
+    end
+end
\ No newline at end of file
diff --git a/matlab/missing/strsplit/strsplit.m b/matlab/missing/strsplit/strsplit.m
new file mode 100644
index 0000000000000000000000000000000000000000..926bb50f389c6a7bb95818f3005856cab2e853fb
--- /dev/null
+++ b/matlab/missing/strsplit/strsplit.m
@@ -0,0 +1,90 @@
+function tok = strsplit(str, delimiters)
+
+% Splits a string into multiple terms.
+%
+% INPUTS
+% - str        [char]                String to be splitted.
+% - delimiters [char, cell(char)]    Delimiters.
+%
+% OUTPUTS
+% - tok        [cell(char)]          Terms.
+
+% Copyright © 2018 DynareTeam
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+remove_empty = true;
+remove_numbers = false;
+
+% Check first input arguments
+assert(ischar(str) && ndims(str)==2 && size(str,1)<=1, 'The first arugment has to be a row char array!');
+
+% Set default value for second input arguments
+if nargin<2
+    delimiters = {' '};
+end
+
+% If second input argument is a char transform it into a sigleton cell of char
+if nargin>1
+    if ischar(delimiters)
+        assert(ndims(delimiters)==2 && size(delimiters,1)==1, 'The second input argument has to be be a char string!');
+        delimiters = {delimiters};
+    end
+end
+
+% Check that `delimiters` is a one dimensional cell
+assert(ndim(delimiters)<=1, 'The second input argument has to be a one dimensional cell array!')
+
+% Check that `delimiters` is a cell of row char arrays
+assert(all(cellfun(@ischar, delimiters)) && all(cellfun(@rows, delimiters)==1), 'The second input argument has to be a cell of row char arrays!')
+
+% If space is one of the delimiters obtain the index in `delimiters`
+idspace = strmatch(' ', delimiters);
+
+% Get the number of delimiters
+n = length(delimiters);
+
+% Remove unnecessary spaces
+delimiters(setdiff(1:n, idspace)) = strtrim(delimiters(setdiff(1:n, idspace)));
+
+% Join all the delimiters (strjoin is not available with matlab version less than R2013a)
+if n>1
+    delimiter = '';
+    for i=1:n
+        if isspace(delimiters{i})
+            delimiter = horzcat(delimiter, '\s');
+        else
+            delimiter = horzcat(delimiter, delimiters{i});
+        end
+        delimiter = horzcat(delimiter,'|');
+    end
+    delimiter = horzcat(delimiter, '\W');
+else
+    delimiter = delimiters{1};
+end
+
+% Get tokens
+tok = regexp(str, delimiter, 'split');
+
+if remove_empty
+    % Remove empty tokens
+    tok = tok(find(~cellfun(@isempty, tok)));
+end
+
+if remove_numbers
+    % Remove numbers
+    tok = tok(find(~cellfun(@ischarnum, tok)));
+end
\ No newline at end of file