#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});