Извлечение (ценовых данных в виде) 1D вектора из вложенной ячейки

#matlab #cell-array #data-extraction

#matlab #ячейка-массив #извлечение данных

Вопрос:

Учитывая:

 data = { ...
    { '2014-12-31'    [79.2100] }  ...
    { '2014-12-30'    [79.3000] }  ...
    { '2014-12-26'    [79.1200] }  };
 

Мне нужно извлечь:

 prices = [ 79.2100, 79.3000, 79.1200 ];
 

Каков хороший способ добиться этого? for Цикл был бы прост в реализации и в сочетании с предварительным распределением был бы достаточно эффективным. Но это выглядит немного неуклюже.

Ответ №1:

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

 % Turn your nested cell array into an N x 2 cell array
data = cat(1, data{:});

% Get just the second column
prices = cat(2, data{:,2});