[英]Can we convert a matlab built in function to c/c++ code using matlab coder
[英]Combining matlab code and c/c++ code for mex function using Matlab Coder
好吧,Matlab Coder能夠在某些限制條件下將.m
文件轉換為mex
函數。
例如,不能在要轉換的.m
文件中調用mex函數。
但是這個限制僅適用於那些我們沒有源代碼的mex函數嗎?
也就是說,如果我們在函數的C mex中有源代碼,並且在Matlab函數中調用該函數,如下所示:
function result = fun() %#codegen
a = ...; %complex large-scale matrix operations
result = cFun(a);
end
如上所述, cFun()
可以使用mex以C語言編寫以提高性能,但是在Matlab中編寫矩陣運算而不是C可能更好。
因此,如果我們可以提供cFun()
的源代碼並使用Matlab Coder
將fun()
轉換為mex
,我們將從Matlab中矩陣運算的便利性和C中的某些運算的性能,甚至OpenCL中獲益。
但這可能嗎?
謝謝!
首先:您可以使用coder.extrinsic
從生成的C代碼或生成的MEX文件中coder.extrinsic
。 如果由於某種原因,您有一個沒有需要調用的源代碼的現有MEX文件,則可以采用與任何其他MATLAB命令相同的方式執行此操作。
其次:如果你想從你生成的C代碼或生成的MEX文件調用一些現有的C源代碼,你可以通過調用coder.ceval
來coder.ceval
。
我不認為你不能用OpenCL代碼做到這一點,盡管如果你想利用GPU代碼我會認為Parallel Computing Toolbox的內置GPU功能會更方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.