2012-09-26 104 views
0

我有我移植到Matlab的單步VC++ 2010調試器從MATLAB

C函數但是C版本產生更好的輸出比我matlab版 所以我想Matlab的版本,以產生所需的數據代碼,然後裝入C中的一個變量,並讓C對數據點進行處理,反之亦然,這樣我就可以比較兩個程序在同一組數據上的工作方式和區別 問題是一個數據集是至少256個花車長,有數百個這樣的數據集

如果我可以計算在Matlab中的數據集,將它們存儲在af中會更方便併發送一個確認信號給C調試器,以便當它從Matlab獲得信號時,它繼續單步執行它的代碼,從磁盤上的文件加載我提供的matlab數據

甚至可以做這個?如果可能的話,我希望能夠做到相反,也就是說,C程序產生數據點然後存儲在一個文件中,然後通過Matlab信號繼續單步執行其代碼

編輯:

我覺得雖然VC++ 2010調試器非常易於使用,但它們使得與其他任何程序結合使用都變得非常困難。因此,如果在gcc的調試器(使用Codeblocks或其他)中做到這一點是可能的,我想就如何做到這一點提出一些建議(即不一定是VC++的調試器)

回答

0

如果你包裝你的C代碼作爲MEX文件,您可以將您的數據直接從MATLAB發送到您的C代碼。然後,您可以將VS調試器附加到MATLAB過程,並像往常一樣在MEX文件中設置斷點。這將允許您單步執行MATLAB代碼,然後通過C代碼。 (注意,當您單步執行C代碼時,MATLAB將無響應)。

實際上,我總是會忘記的一件事,但也可能對此有所幫助,這是MATLAB的LOADLIBRARY接口。這消除了在MEX單板中包裝C代碼的需要。我從來沒有嘗試過,但我認爲你可以在這裏做同樣的技巧 - 將VS調試器附加到正在運行的MATLAB過程並設置斷點等。