2014-11-20 2 views
4

у меня есть массив ячеек Массивы ячеек ...Получить первое значение из массива ячеек клеток

data = {1x16} 
      {1x16} 
      {1x16} 

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

 data{:}(1) 

я в конечном итоге с ошибкой говоря

 Bad cell reference operation. 

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

Cheers! Бен

ответ

1

Для массива из 1D клеток -

first_vals = arrayfun(@(n) data{n}(1),1:numel(data)) 

Это должно работать для общего случая -

first_vals = reshape(arrayfun(@(n) data{n}(1),1:numel(data)),size(data)) 
0

я предпочел бы делать это с помощью простого цикла:

Для Например, это будет работать:

data = [{[1:16]}; {[17:32]}; {[33:48]}]; 
b= [] 
for i=1:length(data) 
b = [b data{i,1}(1)]; 
end 
Смежные вопросы