Есть ли в MATLAB командная или однострочная стратегия, которая вернет все комбинации компонентов n
массивов ячеек, взятых n
за раз?
Пример того, что я хочу выполнить:
A = {'a1','a2'};
B = {'b1','b2','b3'};
C = combinations(A,B)
C = {'a1','b1' ;
'a1','b2' ;
'a1','b3' ;
'a2','b1' ;
'a2','b2' ;
... }
Команда сможет принимать произвольное количество аргументов, и результат в примере будет иметь столько столбцов, сколько аргументов функции. (Конечно, приведенный выше синтаксис предназначен только для иллюстрации и любого метода, который будет генерировать результаты независимо от формата, подходящего для счета)
РЕДАКТИРОВАТЬ: Аналогичные вопросы были заданы для матриц вместо ячеек, например ссылка . Многие решения указывают на представление FEX allcomb , но все такие решения - это просто оболочки для ndgrid, которые работают только с двойниками. Есть предложения для нечисловых наборов?