Mercurial > octave-nkf
comparison scripts/general/deal.m @ 4819:de3b34644549
[project @ 2004-03-05 04:57:07 by jwe]
author | jwe |
---|---|
date | Fri, 05 Mar 2004 04:57:07 +0000 |
parents | ef6ae7349d59 |
children | a436d388b041 |
comparison
equal
deleted
inserted
replaced
4818:ef6ae7349d59 | 4819:de3b34644549 |
---|---|
64 | 64 |
65 function [varargout] = deal (varargin) | 65 function [varargout] = deal (varargin) |
66 | 66 |
67 if (nargin == 0) | 67 if (nargin == 0) |
68 usage ("[a, b, c, d] = deal (x, y, z, a)"); | 68 usage ("[a, b, c, d] = deal (x, y, z, a)"); |
69 elseif (nargin == 1) | 69 elseif (nargin == 1 || nargin == nargout) |
70 v = varargin{1}; | 70 varargout(:) = varargin; |
71 for i = 1:nargout | |
72 varargout{i} = v; | |
73 endfor | |
74 elseif (nargin == nargout) | |
75 varargout = varargin; | |
76 else | 71 else |
77 error ("deal: nargin > 1 and nargin != nargout"); | 72 error ("deal: nargin > 1 and nargin != nargout"); |
78 endif | 73 endif |
79 | 74 |
80 endfunction | 75 endfunction |
76 | |
77 %!test | |
78 %! [a,b]=deal(1,2); | |
79 %! assert(a,1); | |
80 %! assert(b,2); | |
81 %!test | |
82 %! [a,b]=deal(1); | |
83 %! assert(a,1); | |
84 %! assert(b,1); |