Массив ячеек внутри структуры в Matlab - возможно? - PullRequest
12 голосов
/ 08 мая 2011

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

struct(var1,var2,...) 

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

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

1 Ответ

26 голосов
/ 08 мая 2011

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

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

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

X = struct('a', 'one', 'b', 'honk', 'c', {{'foo', 'bar'}});
X = 
    a: 'one'
    b: 'honk'
    c: {'foo'  'bar'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...