MATLAB figure export работает очень медленно по сравнению с R
Мне регулярно приходится экспортировать много цифр (сотни) в один файл. В настоящее время я использую
print('-dpsc2', outfile, '-append');
Мой код использует одну скрытую фигуру, которая повторно используется для каждой новой фигуры.
Теперь проблема в том, что я могу достичь максимальной скорости экспорта около 8 цифр в секунду. В R вы можете легко построить около 200 фигур в секунду. Есть ли у кого-нибудь предложения, как (существенно) ускорить экспортные возможности MATLAB?Ян
1 ответ:
Я чувствую твою боль. Этот вопрос также объясняет, почему функция
getframe
для создания фильмов настолько неэффективна. Единственный известный мне способ обойти это-написать более простую функцию, которая вызывает низкоуровневую функциюhardcopy
. Вот пример этого для графических изображений наряду с некоторыми предостережениями. Функцияhardcopy
поддерживает как опции' dpsc2', так и' append', что делаетhardcopy(gcf,'outfile.ps','-dpsc2','-append');
В то время как
Если вы это сделаете, то получите не так уж много информации. Тем не менее, если вам нужно провести реинжиниринг чего-либо, вы можете прочитать код дляprint(gcf,'-dpsc2', 'outfile.ps', '-append');
занимает около 0,12 секунды, вышеизложенное занимает всего 0,004 секунды на мой машина!edit print
) или различные частные функции, которые он вызывает (например,,edit private/render
,edit private/paperfig
,edit private/ghostscript
).