# HG changeset patch # User jwe # Date 1159841661 0 # Node ID 75a828280d68b38c9b4f6dcfbc6aa9e55d3158e1 # Parent abd750456740adc3e268ed2e9d571dfd0a3c07fd [project @ 2006-10-03 02:14:21 by jwe] diff -r abd750456740 -r 75a828280d68 scripts/ChangeLog --- a/scripts/ChangeLog Fri Feb 01 22:26:07 2008 -0500 +++ b/scripts/ChangeLog Tue Oct 03 02:14:21 2006 +0000 @@ -1,3 +1,8 @@ +2006-10-02 Bill Denney + + * strings/deblank.m, strings/upper.m, strings/lower.m, + general/__isequal__.m: Minimize looping using cellfun. + 2006-10-02 David Bateman * pkg/pkg.m (copy_files): always create installation directory. diff -r abd750456740 -r 75a828280d68 scripts/general/__isequal__.m --- a/scripts/general/__isequal__.m Fri Feb 01 22:26:07 2008 -0500 +++ b/scripts/general/__isequal__.m Tue Oct 03 02:14:21 2006 +0000 @@ -54,11 +54,10 @@ n_x = length (fieldnames (x)); - t = true; - for argn = 1:l_v - y = varargin{argn}; - t = t && isstruct (y) && (n_x == length (fieldnames (y))); - endfor + t = all (cellfun (@isstruct, varargin)) && ... + all (n_x == cellfun (@length, + cellfun (@fieldnames, varargin, + "UniformOutput", false))); if (!t) return; endif @@ -79,16 +78,13 @@ endif endfor - elseif ((iscell (x)) || (islist (x))) + elseif (iscell (x) || islist (x)) x = x(:); l_x = length (x); - t = true; - for argn = 1:l_v - y = varargin{argn}(:); - t = t && (iscell (y) || islist (y)) && (l_x == length (y)); - endfor + t = all ((cellfun (@iscell, varargin) | cellfun (@islist, varargin)) && ... + all (l_x == cellfun (@length, varargin))); if (!t) return; endif diff -r abd750456740 -r 75a828280d68 scripts/strings/deblank.m --- a/scripts/strings/deblank.m Fri Feb 01 22:26:07 2008 -0500 +++ b/scripts/strings/deblank.m Tue Oct 03 02:14:21 2006 +0000 @@ -45,9 +45,7 @@ elseif (iscell(s)) - for i = 1:numel (s) - s{i} = deblank (s{i}); - endfor + s = cellfun (@deblank, s, "UniformOutput", false); else error ("deblank: expecting string argument"); diff -r abd750456740 -r 75a828280d68 scripts/strings/lower.m --- a/scripts/strings/lower.m Fri Feb 01 22:26:07 2008 -0500 +++ b/scripts/strings/lower.m Tue Oct 03 02:14:21 2006 +0000 @@ -35,10 +35,7 @@ if (ischar (s)) retval = tolower (s); elseif (iscellstr (s)) - retval = cell (size (s)); - for i = 1:(numel (s)) - retval{i} = tolower(s{i}); - endfor + retval = cellfun (@tolower, s, "UniformOutput", false); else error ("lower: `s' must be a string or cell array of strings"); endif diff -r abd750456740 -r 75a828280d68 scripts/strings/upper.m --- a/scripts/strings/upper.m Fri Feb 01 22:26:07 2008 -0500 +++ b/scripts/strings/upper.m Tue Oct 03 02:14:21 2006 +0000 @@ -35,10 +35,7 @@ if (ischar (s)) retval = toupper (s); elseif (iscellstr (s)) - retval = cell (size (s)); - for i = 1:(numel (s)) - retval{i} = toupper(s{i}); - endfor + retval = cellfun (@toupper, s, "UniformOutput", false); else error ("upper: `s' must be a string or cell array of strings"); endif