MATLAB: Комбинации произвольного количества массивов ячеек

Есть ли в 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, которые работают только с двойниками. Есть предложения для нечисловых наборов?

5
задан Community 23 May 2017 в 12:08
поделиться