2011-08-03 30 views
0

我正在開發嵌入式系統的算法並在C++代碼中實現它們。在測試目標C++代碼之前,我必須在PC上測試算法以確保數學是正確的。爲此,我創建了一個mex文件,以便我可以在Matlab中驗證輸出。什麼是繪製我的C++代碼的中間結果的最佳工具?

帶有mex文件的系統運行良好,但如果目的是對算法進行快速測試,則實現起來非常麻煩;那麼是否有人推薦另一個繪製c/C++代碼的工具?我已經在這個網站上讀到了關於gnuplot和QWT的一些信息,但是我沒有足夠的把握gnuplot,看看它是否比mex文件更容易設置。

+2

你的意思是繪製C++代碼輸出的結果,而不是「繪製C++代碼」? – Dan

+0

後者;理想情況下,我希望能夠在執行C代碼的任何階段繪製變量的值。我認爲你的建議可以完成這項工作。 – itsaboy

回答

2

有許多繪圖包在那裏(GNUPLOT,XFIG,MATLAB,Excel和等等),每個都有自己的長處和短處。

但是,如果您有權訪問MATLAB並對結果滿意,爲什麼不簡單地將數據從程序輸出到.csv文件並將其加載到MATLAB中?然後,您可以使用MATLAB繪製它,而無需執行.mex文件。

+1

順便說一句,謝謝,它工作正常! – itsaboy

+0

如果您在DLL或共享庫中有代碼,可以選擇調用您的代碼。我廣泛使用了'calllib',而沒有mex文件的麻煩。 (不是說mex文件很麻煩,我通常會使用一些共享的庫)。 http://www.mathworks.com/help/techdoc/matlab_external/f43202.html – ephsmith

1

對於這項任務,任何數量的繪圖工具,如gnuplot,R等等。例如,我認爲您會希望使用輕量級導出例程以儘可能簡單的方式將數據導出爲csv文件格式。然後,您可以創建腳本來使用任何實用程序繪製數據。

就個人而言,我不會使用matlab。您只需要在創建數據後儘快創建一個繪圖,然後啓動matlab並在其中運行腳本比運行gnuplot腳本花費的時間要長。但是,如果你也想在你的數據上運行過濾器和數學表達式,matlab非常棒(當然還有octave!)

所以對於你的問題沒有真正的答案,除非你給我們多一點見解什麼你想陰謀。有無數的繪圖工具可以繪製基本的東西。

0

R具有出色的繪圖功能,您可以使用RInside將R代碼嵌入到C++應用程序中。

正如其他人所提到的,這可能是將您的繪圖代碼與應用程序完全分開。如果您的要求僅僅是繪圖工具可以讀取充滿數據的文本文件並以編程方式繪製散點圖或直方圖,那麼MATLAB或許多其他工具將很容易適合賬單。

+0

感謝您的劇情,我只是做了同樣的廣告:) –

+0

謝謝你們的提示,這對我目前來說是矯枉過正應用程序 – itsaboy

1

如果您知道並且喜歡R,那麼RInside可以很容易地將R嵌入到C++應用程序中(至少在測試版本中,您不希望在嵌入式應用程序中使用它)。

在使用RInside發送的許多示例中,有些是給出函數和/或數據的繪圖。我基本上是爲同一個測試用例編寫的。我的博客有嵌入Qtshort write-up

相關問題