2014-04-30 67 views
-1

我完全是Matlab的新手。如何將一個簡單的Matlab/C函數轉換爲可以在Matlab中運行的版本,而不顯示源代碼?請幫忙!將Matlab/C函數轉換爲沒有源代碼的版本

+0

請您澄清一下問題。 「簡單的Matlab/C函數」是什麼意思?你有[pcode](http://www.mathworks.com/help/matlab/ref/pcode.html)和一個C可執行文件嗎? a [mex](http://www.mathworks.com/help/matlab/ref/mex.html)?爲什麼你不看源代碼? – Raab70

+0

@ Raab70我得到了一個任務來轉換一個簡單的二次函數: ' 函數y = myquadratic(x,c) %x必須是matlab中的一個向量,c是一個標量。 %兩者都可以是c程序的標量(儘可能簡單) y = c * x。^ 2; 返回 ' 成爲一個版本,可以分發給其他matlab用戶在Matlab中使用/執行,但不共享源代碼。我老實說什麼都不知道。正確地使用編譯器? 謝謝! –

+2

所以你有源代碼,你想創建一個可分發的版本,不會向其他人顯示你的源代碼?如果是這種情況,那麼pcode鏈接應該是你在matlab方面尋找的。 C代碼需要編譯成可執行文件。 – Raab70

回答

1

根據您的說明,您正在尋找的答案是經常被遺忘的matlab pcode

pcode是一個很好的工具,它允許你分發matlab代碼,而不會放棄你的源代碼(m文件)的祕密。 pcode文件只能在函數上創建。所以,如果你寫了一個簡單的函數:

function [y] = myfunction(x) 
y=x.^2; 
end 

然後,你可以創建這樣的P碼文件與MATLAB命令:

pcode('myfunction'); 

你會再有一個myfunction.m和保護myfunction.p

有很多人嘗試(不成功)將pcode轉換回m文件的在線文檔。

http://www.mathworks.com/matlabcentral/newsreader/view_thread/272505

http://www.mathworks.com/matlabcentral/answers/9848-how-to-decrypt-a-pcode

http://www.mathworks.com/matlabcentral/answers/75012-pcode-obfuscation-cracked-alternatives

至於編譯你的C代碼,我不是在這方面的專家,但也有很多工具來做到這一點。我個人傾向於使用gcc。關於編譯C代碼的任何其他問題應該可以作爲一個新問題打開,或者搜索一些關於C入門的教程。

+1

+1用於在技術站點發布時查找「plethora」這個詞的半可敬用法。 (即與通常使用的'lots','tons','many'相對......) – ryyker

+0

只有半可拆卸! :( – Raab70

相關問題