2010-05-26 144 views
2

有沒有辦法讓一個內置的MATLAB m-文件的mex文件?如果是,如何?如果不是,這是否意味着我必須自己編寫C代碼(哦,哦!!!)MATLAB的Mex文件

+1

有關您想要調用的函數類型的更多信息將有所幫助。 – SplittingField 2010-05-26 01:34:22

+0

許多Matlab的基本功能都是在編譯的二進制文件中實現的,因此您無法訪問。很多其他功能都在m文件中,因此可以通過版權等進行訪問。所以我不認爲'm'文件有'mex'文件,並且您的問題不正確。 – 2010-05-26 09:47:25

+1

@SplittingField - 我正在查看衆多的m文件 - 例如gradient.m,edge.m,sobel,imshow.m等等。基本上很多來自圖像處理工具箱。我寫了一個代碼並對其進行了分析。它運行緩慢,因爲這些函數中的一些和我寫的一些循環 – hkf 2010-05-26 16:51:15

回答

1

Matlab內置函數是封閉源代碼。因此,你將無法獲得他們的代碼。但是,如果可以解決您的問題,則可以從C代碼調用Matlab函數。

根據你想要的功能,你可以在其他地方找到它的一些。例如,線性代數運算在LAPACK中,並且您可以從OCTAVE的源獲得某些東西。

+1

如何從C調用matlab fubctions我認爲'mexing'的全部意思是不必運行m個文件。 – hkf 2010-05-26 16:48:16

+1

如果您使用C語言編寫程序,並且您需要一些您不想進行反向工程的Matlab功能,則可以調用Matlab函數(http://www.mathworks.com/access/helpdesk/help/techdoc /matlab_external/f29148.html)。這不會對您有所幫助,因爲您似乎想要在Matlab中編寫程序,並通過在C++中重新實現來加速部分程序。 – Jonas 2010-05-26 20:57:01