# HG changeset patch # User Jaroslav Hajek # Date 1284359545 -7200 # Node ID 28ef5a31763d2b3f78637f9beed98872db428ae5 # Parent 50273985ebca2974e7cc058176f818c5da564e12 small rewrite in common_size diff -r 50273985ebca -r 28ef5a31763d scripts/ChangeLog --- a/scripts/ChangeLog Mon Sep 13 08:25:21 2010 +0200 +++ b/scripts/ChangeLog Mon Sep 13 08:32:25 2010 +0200 @@ -1,3 +1,7 @@ +2010-09-13 Jaroslav Hajek + + * general/common_size.m: Partially rewrite using cellindexmat. + 2010-09-13 Jaroslav Hajek * general/accumarray.m: Use @vec instead of @(x) x(:) for faster call. diff -r 50273985ebca -r 28ef5a31763d scripts/general/common_size.m --- a/scripts/general/common_size.m Mon Sep 13 08:25:21 2010 +0200 +++ b/scripts/general/common_size.m Mon Sep 13 08:32:25 2010 +0200 @@ -71,13 +71,9 @@ scal = !nscal; varargout = varargin; if (any (nscal)) - ## This could also be achieved by cellfun (@repmat, ...), but repmat is an - ## m-function and hence still carries interpreter overhead. Further, - ## cellfun is slightly optimized for the case used below. - uo = "uniformoutput"; dims = size (varargin{find (nscal, 1)}); - subs = substruct ("()", arrayfun (@ones, 1, dims, uo, false)); - varargout(scal) = cellfun ("subsref", varargin(scal), {subs}, uo, false); + subs = arrayfun (@ones, 1, dims, "uniformoutput", false); + varargout(scal) = cellindexmat (varargin(scal), subs{:}); endif endif endif