如果一家公司從事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. 我如何將整個xcode項目發送給客戶端
- 2. 如何給多個用戶的博客編輯條目
- 3. 爲多個客戶分支項目
- 4. 如何循環一個對象一次給我5個項目?
- 5. 多個MeteorJS客戶端在一個項目中
- 6. OkHttp客戶端給一個空值
- 7. 如何只給.git目錄分配一個git項目?
- 8. 附加項目給用戶
- 9. 如何在客戶嚮導中獲取新項目選項(VS2008)
- 10. 當刪除一個項目時Sitecore客戶端凍結
- 11. 客戶端/服務器在單獨的項目或在一個
- 12. 添加一個列表項目客戶端
- 13. 如何將一個.net webservice方法暴露給一個java客戶端
- 14. Qt項目+ MATLAB
- 15. 如何使用Web客戶端創建一個目錄在asp.net
- 16. 如何從一個項目訪問webservice到另一個項目
- 17. 如何根據另一個項目構建一個Android項目
- 18. 如何將一個庫項目添加到一個android項目?
- 19. 多個客戶應該有一個項目副本或每個客戶都有自己的副本?
- 20. 如何開發一個jabber客戶端
- 21. 如何實現一個git客戶端?
- 22. 如何將兩個菜單項分配給單個項目?
- 23. 如何將Android項目與AndEngine庫發送給另一個人
- 24. 如何將項目移動到TFVC中的另一個用戶項目區域
- 25. SQL選擇兩個特定項目在同一日期不銷售給同一客戶的地方
- 26. 如何將一些java.awt.image.BufferedImage傳遞給Matlab
- 27. 如何給用戶一個進度條
- 28. 如何從htttp客戶端項目調用api控制器?
- 29. 如何統計客戶端RadListBox中的項目數
- 30. 如何更新Eclipse Web服務客戶端項目中的wsdl?
你看了['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