2016-03-13 3 views
0

У меня есть 6 чисел с повторением: 1,2,2,3,3,4. Я хочу все возможные комбинации, используя любые 4 числа. Как я получу это в MATLAB?Все возможные комбинации элементов в векторе с повторениями в MATLAB

Как правило, я использую функцию «nchoosek», если повторения нет.

Пример: A = 1:6; combinations = nchoosek(A,4);

+0

могли бы вы предоставить ожидаемый результат примера? Это 'уникально (nchoosek (A, 4), 'rows')'? – Arpi

+0

@Arpi Я думаю, что 'nchoosek (unique (A), 4)' будет более эффективным. – Adiel

+0

Вы можете использовать 'nchoosek' по индексам вашего массива. – buzjwa

ответ

1

nchoosek достаточно для выполнения этой задачи, и включает в себя повторы.

A = [1 2 2 3 3 4]; 
combinations = nchoosek(A, 4); 

Если бы хотел, чтобы не включать никаких повторений, вы бы сделали:

combinations = nchoosek(unique(A), 4); 
+0

Возможно, мне что-то не хватает, но это дает тот же результат, что и «nchoosek (A, 4)». – Arpi

+0

Действительно! Я предположил, что, не проверяя, что это не будет поведение из-за вопроса, но кажется, что 'nchoosek (A, 4)' достаточно. Я отредактирую ответ. – buzjwa

Смежные вопросы