Есть ли способ преобразовать двойной массив в массив структур и поместить его в одно поле?
Например, предположим, что мы получаем двойной массив из вызова cellfun
, и выходной массив выглядит как
data=[1,2;3,4];
Можем ли мы получить struct
S, где
S=struct;
for i=1:numel(data)
S(i).data=data(i);
end
end
с собственными функциями или просто получить S эффективно? (визуально в конце)
Если есть метод, может ли результирующий массив struct
сохранить размеры исходного двойного массива? Может ли метод применяться к выводу cellfun
, где вывод представляет собой двойной массив?
В моем конкретном приложении мой data
является (равномерным) выводом вызова для cellfun
, и когда я устанавливаю S.data=cellfun(...)
, результатом является структурный массив из 1 элемента, где S.data
- двойной массив m-by-n из cellfun(...)
. Что я могу сделать, чтобы распределить элементы массива?
(Моя задача состоит в том, чтобы обрабатывать 10 тыс. Точек данных на запрос, а для каждой задачи - около 16 запросов. Поэтому важна скорость. Если эффективного метода нет, Я буду знать, чтобы избежать структурирования для этого конкретного типа задач. Так что комментарии на этом фронте тоже полезны.)