From 81af16d31476e0825b9d9aac04e555fe12df8d57 Mon Sep 17 00:00:00 2001 From: stepan <stepan@ac1d8469-bf42-47a9-8791-bf33cf982152> Date: Mon, 16 Feb 2009 11:12:24 +0000 Subject: [PATCH] v4.1:: Added a function to test if a variable is integer. git-svn-id: https://www.dynare.org/svn/dynare/trunk@2419 ac1d8469-bf42-47a9-8791-bf33cf982152 --- matlab/isint.m | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 matlab/isint.m diff --git a/matlab/isint.m b/matlab/isint.m new file mode 100644 index 0000000000..ddc44ba710 --- /dev/null +++ b/matlab/isint.m @@ -0,0 +1,41 @@ +function [b,c,d] = isint(a) +% This function tests if the input argument is an integer. +% +% INPUT +% a [double] m*n matrix. +% +% OUTPUT +% b [integer] m*n matrix of 0 and 1. b(i,j)=1 if a(i,j) is an integer. +% c [integer] p*1 vector of indices pointing to the integer elements of a. +% d [integer] q*1 vector of indices pointing to the non integer elements of a. +% +% SPECIAL REQUIREMENTS +% None. +% +% NOTES +% p+q is equal to the product of m by n. + +% Copyright (C) 2009 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/>. + + [m,n] = size(a); + b = abs(fix(a)-a)<1e-15; + + if nargout>1 + c = find(b==1); + d = find(b==0); + end \ No newline at end of file -- GitLab