Я не нашел хорошего решения этой проблемы, которая длится вечно и, по-видимому, в основном из-за хранения данных в массиве ячеек (насколько я понимаю).
Я обрабатываю mov ie данные в этом формате:
[data{1:4}] = deal(int16(randi([0 255],200,400,100))); %200px, 200px, 100 frames, 4 similar movies
Где данные представляют 4 разных, но похожих фильма в cell array
. Теперь я хотел бы взять среднее значение данных четырех переменных {1: 4}, кадр за кадром. Вот что я придумал:
for frame = 1:size(data{ind},3)
tmp = zeros(200,400,'int16');
for ind = 1:4
tmp = tmp + data{ind}(:,:,frame);
end
data_avg(:,:,frame) = tmp./4;
end
есть ли более эффективный (более производительный, без удвоения использования ОЗУ) способ сделать это (я его не нашел)?