Как получить все возможные комбинации из K предметов из N в MATLAB - PullRequest
0 голосов
/ 19 апреля 2011

Например, если [1,2,3,4,5,6] - вектор, то все возможные комбинации из 3 элементов за раз -

 4     5     6
 3     5     6
 3     4     6
 3     4     5
 2     5     6
 2     4     6
 2     4     5
 2     3     6
 2     3     5
 2     3     4
 1     5     6
 1     4     6
 1     4     5
 1     3     6
 1     3     5
 1     3     4
 1     2     6
 1     2     5
 1     2     4
 1     2     3

Как мне найти это в MATLAB?

Ответы [ 3 ]

4 голосов
/ 19 апреля 2011

Попробуйте ссылку .В основном вам просто нужно набрать c = combnk(1:6,3).Надеюсь, это поможет.

Редактировать: Разница между тем, что я предложил, и @nash's combntns - это набор инструментов, в котором находятся команды. combnk находится в наборе инструментов статистики, а combntns находится вMapping Toolbox.

3 голосов
/ 28 марта 2015

Я использую:

allCombos = nchoosek([1:n],k);

Я предпочитаю это, поскольку nchoosek поставляется с Matlab, набор инструментов не требуется.

3 голосов
/ 19 апреля 2011
>> combos = combntns([1 2 3 4 5 6], 3)

Выход:

 1     2     3
 1     2     4
 1     2     5
 1     2     6
 1     3     4
 1     3     5
 1     3     6
 1     4     5
 1     4     6
 1     5     6
 2     3     4
 2     3     5
 2     3     6
 2     4     5
 2     4     6
 2     5     6
 3     4     5
 3     4     6
 3     5     6
 4     5     6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...