function C = allcombs(varargin) n = nargin; if n < 2, error('Insufficient input'); end s = '[x1'; for i=2:n s = [s sprintf(',x%i',i)]; end s = [s ']=ndgrid(varargin{:});']; eval(s); s = '[x1(:)'; for i=2:n s = [s sprintf(',x%i(:)',i)]; end s = [s ']']; C = eval(s);
调用示例:
a = [1 2]; b = [3 4 5]; c = [6 7]; C = allcombs(a,b,c)