Можно ли ускорить построение графика в Matlab, вызвав код c / c ++ в Matlab?

Обычно очень легко вызвать mex файлы (написанные на c / c ++) в Matlab для ускорения определенных вычислений. Однако, по моему опыту, истинным узким местом в Matlab является построение графиков данных. Создание дескрипторов чрезвычайно дорого, и даже если вы обновляете только данные дескрипторов (например, XData, YData, ZData), это может занять много времени. Хуже того, поскольку Matlab - это однопоточная программа, невозможно одновременно обновлять несколько графиков.

Поэтому мой вопрос : Можно ли написать графический интерфейс Matlab и вызвать C ++ (или другой параллелизируемый код), который позаботится о построении графика / визуализации? Я ищу кроссплатформенное решение, которое будет работать на Windows, Mac и Linux, но мы очень ценим любое решение, которое заставит меня начать работать на любой из этих ОС!

Я нашел библиотеку C ++ , которая, кажется, использует синтаксис Matlab plot () , но я не уверен, ускорит ли это процесс, так как боюсь, что если я plot в окно Matlab figure () , работа может снова замедлиться.

Буду признателен за любые комментарии и отзывы людей, которые уже сталкивались с подобными ситуациями раньше!

РЕДАКТИРОВАТЬ: очевидно, я уже профилировал свой код, и узким местом является построение графика (дюжина панелей с большим количеством данных).

EDIT2: чтобы вы получили награду, мне нужен реальный, минимальный рабочий пример того, как это сделать - наводящие ответы мне не помогут.

EDIT3: относительно данных для построения графика: в самом простом случае представьте себе 20 линейных графиков, которые необходимо обновлять каждую секунду примерно 1000000 точек данных.

EDIT4: Я знаю, что это огромное количество точек для построения графика, но я никогда не говорил, что проблема была простой. Я не могу просто пропустить определенные точки данных, потому что нет способа оценить, какие точки важны, до их построения (данные отбираются с временным разрешением менее миллисекунд).Фактически, мои данные собираются с помощью коммерческой системы сбора данных, которая поставляется со средством просмотра данных (написанным на C ++). У этой программы нет проблем с визуализацией до 60 линейных графиков с даже более чем 1000000 точек данных.

РЕДАКТИРОВАТЬ5: Мне не нравится, куда идет текущая дискуссия. Я знаю, что подвыборка моих данных может ускорить процесс, но вопрос не в этом. Вопрос в том, как заставить интерфейс c / c ++ / python / java работать с Matlab, чтобы, надеюсь, ускорить построение графиков, напрямую обращаясь к оборудованию (или используя любой другой трюк / способ)

14
задан Andrey Rubshtein 27 February 2012 в 08:23
поделиться