MATLAB figure export работает очень медленно по сравнению с R


Мне регулярно приходится экспортировать много цифр (сотни) в один файл. В настоящее время я использую

  print('-dpsc2', outfile, '-append');

Мой код использует одну скрытую фигуру, которая повторно используется для каждой новой фигуры.

Теперь проблема в том, что я могу достичь максимальной скорости экспорта около 8 цифр в секунду. В R вы можете легко построить около 200 фигур в секунду. Есть ли у кого-нибудь предложения, как (существенно) ускорить экспортные возможности MATLAB?

Ян

1 5

1 ответ:

Я чувствую твою боль. Этот вопрос также объясняет, почему функция getframe для создания фильмов настолько неэффективна. Единственный известный мне способ обойти это-написать более простую функцию, которая вызывает низкоуровневую функцию hardcopy. Вот пример этого для графических изображений наряду с некоторыми предостережениями. Функция hardcopy поддерживает как опции' dpsc2', так и' append', что делает print:

hardcopy(gcf,'outfile.ps','-dpsc2','-append');

В то время как print(gcf,'-dpsc2', 'outfile.ps', '-append'); занимает около 0,12 секунды, вышеизложенное занимает всего 0,004 секунды на мой машина!

Если вы это сделаете, то получите не так уж много информации. Тем не менее, если вам нужно провести реинжиниринг чего-либо, вы можете прочитать код для print (edit print) или различные частные функции, которые он вызывает (например,, edit private/render, edit private/paperfig, edit private/ghostscript).