Mercurial > hg > octave-nkf
changeset 3210:258d7b26c719
[project @ 1998-11-05 04:00:42 by jwe]
author | jwe |
---|---|
date | Thu, 05 Nov 1998 04:00:42 +0000 |
parents | fbb332b96e4f |
children | 440b2b28e74a |
files | scripts/general/is_duplicate_entry.m scripts/general/is_symmetric.m |
diffstat | 2 files changed, 51 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/scripts/general/is_duplicate_entry.m @@ -0,0 +1,44 @@ +## Copyright (C) 1996, 1997 A. S. Hodel <scotte@eng.auburn.edu> +## +## This file is part of Octave. +## +## Octave 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 2, or (at your option) +## any later version. +## +## Octave 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 Octave; see the file COPYING. If not, write to the Free +## Software Foundation, 59 Temple Place - Suite 330, Boston, MA +## 02111-1307, USA. + +## Usage: is_duplicate_entry (x) +## +## Return non-zero if any entries in x are duplicates of one another. + +## Author: A. S. Hodel <scotte@eng.auburn.edu> + +function retval = is_duplicate_entry (x) + + if (nargin == 1) + if (is_matrix (x)) + [m, n] = size (x); + lx = m*n; + lx1 = lx-1; + x = sort (reshape (x, 1, lx)); + dx = x(1:lx1) - x(2:lx); + retval = sum (dx == 0); + else + error ("is_duplicate_entry: expecting matrix argument"); + endif + else + usage ("is_duplicate_entry (x)"); + endif + +endfunction +
--- a/scripts/general/is_symmetric.m +++ b/scripts/general/is_symmetric.m @@ -30,18 +30,14 @@ function retval = is_symmetric (x,tol) - retval = 0; - if (nargin == 1 || nargin == 2) - if (is_matrix (x)) - [nr, nc] = size (x); - if (nr == nc && nr > 0) - if (nargin == 1) - tol = eps; - endif - if (norm (x - x') / norm(x) <= tol) - retval = nr; - endif + retval = is_square (x); + if (retval != 0) + if (nargin == 1) + tol = eps; + endif + if (norm (x - x') / norm(x) > tol) + retval = 0; endif endif else