如果一家公司從事matlab項目,那麼他們如何爲客戶提供項目?我的意思是他們向客戶發送哪個文件,因爲他們無法將整個代碼和數據交給客戶端?如何給客戶一個matlab項目?
回答
這取決於很多事情,例如您爲客戶建立的產品的性質,您與客戶的關係和合同協議,以及他們是否需要在未來修改產品。
當我爲一家公司的MATLAB項目進行諮詢時,我通常會給他們提供MATLAB源代碼。部分合同通常會說他們擁有我爲他們製作的代碼(以及代碼的版權),然後他們可以根據自己的需要做任何事情。
如果您有不同的關係,您繼續擁有代碼並需要阻止他們閱讀和/或修改代碼,那麼問題與其他語言的問題是一樣的:您依賴於技術限制和法律限制的混合,旨在儘可能限制您的需求,同時儘量減少最終用戶的不便。
例如,
- 您可以使用命令
pcode
混淆您的代碼。這樣可以防止幾乎所有不確定的人看到你的代碼並修改它(儘管存在一些漏洞),但是他們仍然能夠在MATLAB中運行它。缺點可能是你的代碼在未來的MATLAB版本中可能無法執行,所以你可能需要再次支持它才能在以後修復。爲了緩解這種情況,您可以在合同或許可協議中指定僅支持特定版本的MATLAB。 - 您可以使用MATLAB編譯器生成一個獨立的庫或可執行文件,其中包含加密形式的代碼。缺點可能是他們寧願使用MATLAB內部的代碼。好處在於,與第一種選擇不同,它不需要MATLAB,因此您在將來不容易出現向後兼容性問題。
- 您可以在您的MATLAB應用程序中包含許可證管理代碼。你可以推出你自己的產品,也許可以通過爲加密技術調用一些Java(你可能無法使它變得非常安全,除非你非常有才華,但你可能會做出一些簡單而可行的方法) ,或者你可以購買第三方的C庫來做好,並從MATLAB調用它們。
- 您可以簡單地在您的代碼中放置版權行,說明您擁有版權,並根據特定條款向其授予代碼,例如他們可以查看,使用它,但不能修改或重新發布它。如果你真的想要,你可以讓他們簽署一份保密協議,要求他們不要與第三方討論代碼的內容。
雖然現有的技術限制在MATLAB有點不同比他們將是一個編譯語言如C或Java,在一天結束那些只是曾經有保持誠實的人誠實 - 任何人都確定他們最終能夠避開他們,他們可能會給誠實的人帶來不便,他們會厭煩他們不喜歡你的產品或服務。
更好地使用非常輕的技術限制,晶瑩剔透的合同和許可條款以及信任的混合物。
< 廣告>我提供的諮詢服務之一是建議和幫助準備用於部署的MATLAB代碼,包括保護它。如果您認爲您會從中受益,請與我們聯繫。 < /advert>
#2的另一個缺點是它會依賴於平臺,因此您需要爲每個操作系統編譯版本(在某些情況下可能需要32位/ 64位)。還有[Matlab Compiler不支持的一些工具箱功能](http://www.mathworks.com/products/compiler/supported/compiler_support.html;jsessionid=a3d34359fc44dfda0912446eed2d)。 – horchler 2014-12-08 14:12:58
您可以使用Matlab編譯器並將您的代碼編譯到windows的exe文件中。這是一家公司通常所期望的。某些擁有R的人可能會要求您提供原始的m代碼或具體功能,具體取決於您與他們的關係/合同。我被要求多次提供密碼,並在我的合同上說我想把這些信息給他們。 (基於英國)
如果我將它轉換爲.exe,那麼matlab如何運行它?如果它在cmd中工作,那麼如何轉換相同? – anurag 2014-12-08 10:10:06
- 1. 如何給模板項目一個客戶端布爾標誌?
- 2. 我如何將整個xcode項目發送給客戶端
- 3. 一個項目,多個客戶與GIT?
- 4. 如何在另一個客戶端項目中調用@Remote EJB
- 5. 如何將客戶和項目鏈接到另一個?
- 6. 如何給從另一個項目
- 7. 如何給多個用戶的博客編輯條目
- 8. 如何實現一個Node.js廣播給多個客戶端
- 9. 爲多個客戶分支項目
- 10. 如何循環一個對象一次給我5個項目?
- 11. 多個MeteorJS客戶端在一個項目中
- 12. Git(GitLab)一個項目基地的多個客戶
- 13. OkHttp客戶端給一個空值
- 14. 如何只給.git目錄分配一個git項目?
- 15. 如何將一個node.js程序交付給客戶端?
- 16. 分配一個項目給多個用戶的SugarCRM的
- 17. 附加項目給用戶
- 18. 如何將客觀的C xcode項目添加到另一個快速項目
- 19. 當刪除一個項目時Sitecore客戶端凍結
- 20. 在客戶端添加一個DropDownList項目,C#/ ASP.NET
- 21. WS客戶端和服務器在一個Java項目中
- 22. 添加一個列表項目客戶端
- 23. Android上的chromecast項目是一個RDP客戶端
- 24. 客戶端/服務器在單獨的項目或在一個
- 25. 如何將項目逐個傳遞給另一個msbuild任務?
- 26. bagof只給一個項目,雖然多個項目適合
- 27. 如何將一個.net webservice方法暴露給一個java客戶端
- 28. 如何使用Web客戶端創建一個目錄在asp.net
- 29. Qt項目+ MATLAB
- 30. 如何在MATLAB中給一個符號變量一個數字?
你看了['pcode'](http://www.mathworks.com/help/matlab/ref/pcode.html)嗎? – Shai 2014-12-08 06:19:58
Sam Roberts的這篇文章可能也有幫助:http://stackoverflow.com/questions/18126407/matlab-compiler-vs-matlab-coder – rayryeng 2014-12-08 07:18:33
謝謝。這很有幫助。 – anurag 2014-12-08 10:07:15