How to obtain all possible combinations from a set of values without nested for loops ?
2 次查看(过去 30 天)
显示 更早的评论
Hi people! I wanted to know if there is an elegant and general approach to generate all possible vectors of a given length where the components are being taken from a known set of values. In my example I have:
set={-1,0,1}; %set of possible values for vector components
n=10; % length of vector
A possible combination for a vector could be
[0,0,0,0,0,0,0,0,0,0]
or
[0,0,0,0,0,0,0,0,0,1]
or
[1,0,0,0,0,0,0,0,0,-1]
So there are 3^10=59049 possible combinations for the components of the vector. I would like to have a method where my result is a 59049-by-10 matrix, each row being a unique combination of the values {-1,0,1}.
The only way I found is extremly inefficient and not parametric, simply nesting 10 for loops, so I would be really thankful for a "real" method. I already tried different matlab functions such as combvec, combnk, but they didn't do what I wanted. Maybe I just used them wrongly.
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!