Возможно, существует массив ячеек внутри структуры в Matlab?

Я хотел бы обернуть несколько переменных внутри одной структуры, чтобы упростить ввод и вывод из функций, поскольку они отправляются совсем немного. Проблема в том, что одной из переменных является массив ячеек, в частности содержащий строки. Очевидно, как только одна из переменных, заданных

struct(var1,var2,...) 

- это массив ячеек, затем он делает структуру ячеек массива структур, вместо того, чтобы иметь массив ячеек внутренней переменной структуры, которая не является моим желаемым результатом и потребует угадывания большого количества кода.

Есть ли какое-либо решение/обходное решение этой проблемы?

Ответ 1

Вы можете установить поле напрямую:

 X = struct('a', 'one', 'b', 'honk');
 X.c = {'x', 'y'};

Или, если вы хотите сделать все внутри struct(), вы можете поместить массив ячеек в массив ячеек:

X = struct('a', 'one', 'b', 'honk', 'c', {{'foo', 'bar'}});
X = 
    a: 'one'
    b: 'honk'
    c: {'foo'  'bar'}