combinations

版本 1.0.0.1 (3.0 KB) 作者: Gautam Vallabha
Returns combinations of a set of numeric or cell vectors (uses a memory-efficient algorithm)
2.4K 次下载
更新时间 2016/9/1

查看许可证

C = COMBINATIONS(V1, V2, V3, ...Vn) returns the set of combinations formed by taking the first element from vector V1, the second element from vector V2, the third from vector V3, and so on.
C is a KxN matrix, where K is the total
number of combinations, and N is the number
of (non-empty) input vectors.

V1, V2, ... Vn can be either numeric or cell arrays.

C = COMBINATIONS(V1, V2, V3, ...Vn, CLASSNAME) specifies that all the numeric vectors have numeric type CLASSNAME (e.g., 'int8', 'single').

Examples:

c = combinations(1:5, 1:2)
c = combinations(1:5, 1:2, 'int8')
c = combinations(0:1,0:1,0:1,0:1,0:1,0:1,0:1,0:1,0:1,'int8');

c = combinations({'aa','bb'}, 1:3)
c = combinations({'aa','bb'}, {[1 2] [4 5 6]}, [true false])

----------------
MOTIVATION (in the spirit of reducing FileEx redundancy and clutter)

There are other FileExchange entries for calculating combinations:
ALLCOMB (Filex# 10064)
SETPROD (FileEx# 5898)
CARTPROD (FileEx# 5475)

This implementation differs in two ways.

1) It allows combination of arbitrary cell arrays, and mixtures of cell and numeric arrays.

2) It use a memory-efficient algorithm that does not use intermediate matrices; furthermore, when CLASSNAME is specified, the specified numeric datatype is used consistently (there is no internal conversion from 'double'). This efficiency is relevant when the input consists of many small vectors or a few very large vectors.

引用格式

Gautam Vallabha (2024). combinations (https://www.mathworks.com/matlabcentral/fileexchange/23080-combinations), MATLAB Central File Exchange. 检索来源 .

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

启发作品: VChooseK

Community Treasure Hunt

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

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

Updated license

1.0.0.0