# HG changeset patch # User jwe # Date 1197498975 0 # Node ID 7fd7abd371131ddf28ffbc81e7314224467172aa # Parent 1ebbf09242176e3805262297f916d2042a24a5af [project @ 2007-12-12 22:36:15 by jwe] diff -r 1ebbf0924217 -r 7fd7abd37113 scripts/ChangeLog --- a/scripts/ChangeLog Wed Dec 12 22:22:10 2007 +0000 +++ b/scripts/ChangeLog Wed Dec 12 22:36:15 2007 +0000 @@ -1,5 +1,9 @@ 2007-12-12 John W. Eaton + * image/loadimage.m: Avoid calling eval. Avoid calling exist. + + * plot/pie.m: Avoid calling "exist". + * linear-algebra/condest.m: Use nargin instead of size(varargin,2). Condense argument processing logic. Allow 6 arguments. Use issquare. Avoid calling "exist". diff -r 1ebbf0924217 -r 7fd7abd37113 scripts/image/loadimage.m --- a/scripts/image/loadimage.m Wed Dec 12 22:22:10 2007 +0000 +++ b/scripts/image/loadimage.m Wed Dec 12 22:36:15 2007 +0000 @@ -44,18 +44,18 @@ ## The file is assumed to have variables img and map, or X and map. - eval (sprintf ("load %s", file)); + vars = load (file); - if (exist ("img")) - img_retval = img; - elseif (exist ("X")) - img_retval = X; + if (isfield (vars, "img")) + img_retval = vars.img; + elseif (isfield (vars, "X")) + img_retval = vars.X; else error ("loadimage: invalid image file found"); endif - if (exist ("map")) - map_retval = map; + if (isfield (vars, "map")) + map_retval = vars.map; else error ("loadimage: invalid image file found"); endif diff -r 1ebbf0924217 -r 7fd7abd37113 scripts/plot/pie.m --- a/scripts/plot/pie.m Wed Dec 12 22:22:10 2007 +0000 +++ b/scripts/plot/pie.m Wed Dec 12 22:36:15 2007 +0000 @@ -77,26 +77,31 @@ len = length (x); + have_explode = false; + have_labels = false; + while (iarg <= nargin) arg = varargin{iarg++}; if (iscell (arg)) labels = arg; + have_labels = true; if (! size_equal (x, labels)) error ("pie: mismatch in number of labels and data"); endif elseif (isnumeric (arg)) explode = arg; + have_explode = true; if (! size_equal (x, explode)) error ("pie: mismatch in number of elements in explode and data"); endif endif endwhile - if (! exist ("explode", "var")) + if (! have_explode) explode = zeros (size (x)); endif - if (! exist ("labels", "var")) + if (! have_labels) xp = round (100 * x ./ sum (x)); for i = 1:len labels{i} = sprintf ("%d%%", xp(i));