add strjoin to missing

time-shift
Houtan Bastani 2013-04-04 10:57:31 +02:00
parent 18a24de73d
commit 1f9e6dea8d
3 changed files with 46 additions and 0 deletions

View File

@ -68,6 +68,11 @@ Files: matlab/missing/bicgstab/bicgstab.m
Copyright: 2008 Radek Salac
License: GPL-3+
Files: matlab/missing/strjoin/strjoin.m
Copyright: 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu>
2013 Dynare Team
License: GPL-3+
Files: doc/dynare.texi doc/*.tex doc/*.svg doc/*.dia doc/*.pdf doc/*.bib
Copyright: 1996-2013 Dynare Team
License: GFDL-NIV-1.3+

View File

@ -94,6 +94,11 @@ if exist('OCTAVE_VERSION') || matlab_ver_less_than('7.4')
addpath([dynareroot '/missing/ilu'])
end
% strjoin is missing in older versions of MATLAB and in Octave
if exist('OCTAVE_VERSION') || matlab_ver_less_than('8.1')
addpath([dynareroot '/missing/strjoin'])
end
% nanmean is in Octave Forge Statistics package and in MATLAB Statistics
% toolbox
if (exist('OCTAVE_VERSION') && ~user_has_octave_forge_package('statistics')) ...

View File

@ -0,0 +1,36 @@
function rval = strjoin (c, varargin)
%function rval = strjoin (c, varargin)
% Copyright (C) 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu>
% Copyright (C) 2013 Dynare Team
%
% 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/>.
assert(iscellstr(c), 'strjoin: first argument is a cell array of strings');
assert(nargin <= 2, 'strjoin: takes one or two arguments');
delimiter = ' ';
if nargin == 2
delimiter = varargin{1};
assert(ischar(delimiter), 'strjoin: second argument must be a char');
end
rval = '';
L = length(c);
for idx = 1:(L-1)
rval = [rval c{idx} delimiter];
end
rval = [rval c{L}];
end