nchoose

版本 3.0 (2.9 KB) 作者: Jos (10584)
all combinations of the elements of a set
3.5K 次下载
更新时间 2019/2/8

查看许可证

W = nchoose(S) returns all possible combinations of 0, 1, or more
elements of the set S, having N elements. There are 2^N combinations
in total. W is a cell array and each cell holds one of these
combination (as a row vector).
S can be a cell array, and each cell of W will then contain a cell
array. W is the powerset of S, as it includes the empty set (0
elements) as it first cell.

For a vector of integers I, W = nchoose(S, I) returns only the sets
indicated by the indices I. This might be useful for large sets.

Examples:
nchoose([2 4 6 8])
% -> { [] ;
% [2] ;
% [4] ;
% [2 4] ;
% [6] ;
% ...
% [2 6 8] ;
% [4 6 8] ;
% [2 4 6 8]} ; % in total 16 different combinations

nchoose([33 22 11], [1 8 4])
% -> { [] ; [33 22 11] ; [ 33 11]}

Notes:
- For sets containing more than 18 elements a warning is given, as this
can take some time. Hit Ctrl-C to intterupt calculations.
- If S contain non-unique elements (e.g. S = [1 1 2]), nchoose will
return non-unique cells. In other words, nchoose treats all elements
of S as being unique. One could use nchoose(UNIQUE(S)) to avoid that.
- Loosely speaking, nchoose(S) collects all output of multiple calls to
NCHOOSEK(S, K) where K is looping from 1 to the number of elements of
S. The implementation of nchoose, however, does rely of a different
method and is much faster than such a loop.
- For more information, see: http://en.wikipedia.org/wiki/Power_set

See also nchoosek, perms,
permn, nchoose2, allcomb on the file Exchange

引用格式

Jos (10584) (2025). nchoose (https://www.mathworks.com/matlabcentral/fileexchange/20011-nchoose), MATLAB Central File Exchange. 检索时间: .

MATLAB 版本兼容性
创建方式 R2018a
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Argument Definitions 的更多信息
致谢

启发作品: nchoosecrit(S, FUN)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
3.0

implemented powers and subset

2.2.0.0

updated description
update contact info. Works on most ML releases

1.1.0.0

reference to powerset

1.0.0.0

improved algorithm (thank US!)