Вопрос по matlab, c++ – Потоковая передача данных в MATLAB с входными данными, поступающими из исполняемого файла C ++

4

Я совершенно новичок в MATLAB и хочу узнать, какие у меня есть варианты для потоковой передачи данных из файла C ++.

Я слышал об использовании для этой цели «движка» MATLAB и некоторых методов, таких как engPutVariable и т. Д., Но кто-нибудь может дать мне подробный пример того, как это сделать? Я пытаюсь реализовать потоковую передачу синусоидальной волны, но простого примера отправки выборочного набора данных должно быть достаточно.

Ваш Ответ

1   ответ
8

движок matlab и функции mex. Очень важно отметить, что Matlab API является однопоточным. Нет абсолютно никакого способа иметь видимые пользователем фоновые темы. В лучшем случае есть прерывания для событий пользовательского интерфейса.

С движком Matlab ваше приложение является приложением C ++, которое использует Matlab в качестве библиотеки надстроек. Вы можете вызывать функции Matlab из C ++, но вы должны убедиться, что только один поток обращается к Matlab в любой момент времени. Таким образом, у вас может быть поток, который передает данные в Matlab из очереди входных данных, поступающих от остальной части вашего приложения. C ++ может иметь столько потоков, сколько захочет, но только один может взаимодействовать с Matlab.

Другой подход состоит в том, чтобы Matlab управлял основным приложением и вызывал код C ++ всякий раз, когда ему нужно больше данных. Код C ++ действует как плагин для Matlab. Код C ++ может иметь столько потоков, сколько он хочет, но Matlab опрашивает C ++, когда ваш m-файл вызывает его. Посмотрите документацию по функциям MEX.

Благодарность! Это немного проясняет ситуацию, поэтому я могу начать. Suvesh Pratapa

Похожие вопросы