Как отделить данные от вложенных ячеек?

У меня есть вложенная ячейка, как показано ниже

A= {1x12 cell}  {1x12 cell}  {1x12 cell}  {1x12 cell}  {1x12 cell}

Я пробовал A{:} для получения данных в указанных выше ячейках, и я получаю их, как показано ниже.

ans = 

 Columns 1 through 12

'1'    '0'    '1'    '0'    '1'    '0'    '0'    '1'    '1'    '1'    '1'    '1'



 ans = 

 Columns 1 through 12

'1'    '1'    '0'    '1'    '1'    '1'    '1'    '0'    '1'    '1'    '0'    '0'




 ans = 

 Columns 1 through 12

'0'    '1'    '1'    '1'    '0'    '0'    '0'    '0'    '1'    '1'    '0'    '0'




 ans = 

  Columns 1 through 12

'1'    '1'    '1'    '1'    '0'    '1'    '1'    '0'    '0'    '0'    '0'    '1'




  ans = 

  Columns 1 through 12

'0'    '0'    '1'    '0'    '0'    '1'    '0'    '1'    '0'    '0'    '0'    '1'

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

  a1=[1    0    1    0    1    0    0    1    1    1    1    1    ]

  a2=[1    1    0    1    1    1    1    0    1    1    0    0    ]

  a3=[0    1    1    1    0    0    0    0    1    1    0    0    ]

  a4=[1    1    1    1    0    1    1    0    0    0    0    1    ]

  a5=[0    0    1    0    0    1    0    1    0    0    0    1    ]

Как добиться такого результата? Заранее спасибо.


person Abirami Anbalagan    schedule 28.01.2015    source источник
comment
Что, если завтра у вас получится 100s таких ячеек, то у вас будет a1, a2... a100. Вы когда-нибудь так думали?   -  person Divakar    schedule 28.01.2015
comment
Каким будет наиболее эффективный способ выполнить простую функцию, такую ​​как умножение или операцию XOR, над вложенными ячейками, как показано выше?   -  person Abirami Anbalagan    schedule 28.01.2015
comment
Я подумал, что разделение вложенных ячеек может быть несколько приемлемым, если мне нужно выполнять функции над данными, доступными в ячейках.   -  person Abirami Anbalagan    schedule 28.01.2015
comment
Моя цель заключалась в том, чтобы сделать рабочее пространство более организованным в качестве общей идеи, а не конкретной проблемы. И мое намекнувшее предложение состояло в том, чтобы использовать 2D-массив с учетом согласованных размеров ожидаемых выходных массивов.   -  person Divakar    schedule 28.01.2015
comment
@Divakar Я пытался использовать функцию cell2mat, но потом она просто отображает массив размером 5x1.   -  person Abirami Anbalagan    schedule 28.01.2015
comment
@Divakar Думаю, я украл твою идею (не читал комментарии), извини!   -  person Luis Mendo    schedule 28.01.2015
comment
@LuisMendo О нет, на самом деле это здорово, надеюсь, что ОП последует за ним!   -  person Divakar    schedule 28.01.2015
comment
@Divakar Да, мне лень объяснять без крайней необходимости   -  person Luis Mendo    schedule 28.01.2015
comment
@Divakar и LuisMendo большое спасибо... я понял... :)   -  person Abirami Anbalagan    schedule 28.01.2015


Ответы (1)


Вам лучше использовать матрицу (как предложил Divakar):

M = reshape(cell2mat([A{:}]),[],numel(A)).';

Или проще, как заметил knedlsepp:

M = cell2mat(cat(1,A{:}));

Тогда ваши желаемые «переменные» — это строки M, то есть M(1,:), M(2,:) и т. д.

person Luis Mendo    schedule 28.01.2015
comment
Большое спасибо... я использовал цикл for и не смог правильно выполнить код... понял... - person Abirami Anbalagan; 28.01.2015
comment
@AbiramiAnbalagan Рад этому! - person Luis Mendo; 28.01.2015
comment
В качестве альтернативы с меньшим транспонированием: M = cell2mat(cat(1,A{:})). - person knedlsepp; 28.01.2015
comment
@knedlsepp Хорошо видно! Отредактировано - person Luis Mendo; 28.01.2015