Add missing iscolumn and ismatrix for MATLAB < R2010b

Also fix a bug in isrow (it was not checking the rank of the array).
time-shift
Sébastien Villemot 2018-11-13 16:59:27 +01:00
parent 736d43c4e6
commit ce49cd95df
No known key found for this signature in database
GPG Key ID: 2CECE9350ECEBE4A
4 changed files with 43 additions and 4 deletions

View File

@ -126,9 +126,9 @@ if ~isoctave && matlab_ver_less_than('8.1')
p{end+1} = '/missing/strsplit';
end
% isrow is missing in Matlab<R2010b
% isrow, iscolumn and ismatrix are missing in Matlab<R2010b
if ~isoctave && matlab_ver_less_than('7.11')
p{end+1} = '/missing/isrow';
p{end+1} = '/missing/is-row-column-matrix';
end
P = cellfun(@(c)[dynareroot(1:end-1) c], p, 'uni',false);

View File

@ -0,0 +1,20 @@
function r = iscolumn(V)
% Copyright (C) 2018 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/>.
sz = size(V);
r = (length(sz) == 2) && (sz(2) == 1);

View File

@ -0,0 +1,19 @@
function r = ismatrix(V)
% Copyright (C) 2018 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/>.
r = (ndims(V) == 2);

View File

@ -16,5 +16,5 @@ function r = isrow(V)
% You should have received a copy of the GNU General Public License
% along with Dynare. If not, see <http://www.gnu.org/licenses/>.
[m, n] = size(V);
r = (m == 1);
sz = size(V);
r = (length(sz) == 2) && (sz(1) == 1);