2009-07-01 52 views
4

我完全不熟悉MATLAB,我想知道我的選項是用於從C++文件進行數據流傳輸的。MATLAB中的數據流與來自C++可執行文件的輸入數據

我聽說過使用MATLAB「引擎」來達到這個目的,以及一些像engPutVariable等方法,但是有人能給我一個徹底的例子來說明如何去做這件事嗎?我正在嘗試實現正弦波的流式傳輸,但通過發送一組樣本數據的簡單示例就足夠了。

回答

8

你有兩種選擇:matlab引擎和mex函數。注意到Matlab API是單線程的非常重要。絕對沒有辦法讓用戶可見的後臺線程。充其量,UI事件有中斷。

使用Matlab引擎,您的應用程序是一個使用Matlab作爲附加庫的C++應用程序。您可以從C++調用Matlab函數,但是您必須確保只有一個線程在任何時間點訪問Matlab。所以,你可以有一個線程,通過來自應用程序其餘部分的輸入隊列向Matlab提供數據。 C++可以擁有儘可能多的線程,但只有一個可以與Matlab交互。

另一種方法是讓Matlab控制主應用程序,並在需要更多數據時調用C++代碼。 C++代碼充當了Matlab的插件。 C++代碼可以擁有儘可能多的線程,但是當你的m文件調用它時,Matlab會輪詢C++。查閱有關MEX功能的文件。

+0

謝謝!這清除了它,至少有一點,所以我可以開始。 – 2009-07-02 14:00:33

相關問題