2014-12-08 65 views
2

如果一家公司從事matlab項目,那麼他們如何爲客戶提供項目?我的意思是他們向客戶發送哪個文件,因爲他們無法將整個代碼和數據交給客戶端?如何給客戶一個matlab項目?

+2

你看了['pcode'](http://www.mathworks.com/help/matlab/ref/pcode.html)嗎? – Shai 2014-12-08 06:19:58

+0

Sam Roberts的這篇文章可能也有幫助:http://stackoverflow.com/questions/18126407/matlab-compiler-vs-matlab-coder – rayryeng 2014-12-08 07:18:33

+0

謝謝。這很有幫助。 – anurag 2014-12-08 10:07:15

回答

4

這取決於很多事情,例如您爲客戶建立的產品的性質,您與客戶的關係和合同協議,以及他們是否需要在未來修改產品。

當我爲一家公司的MATLAB項目進行諮詢時,我通常會給他們提供MATLAB源代碼。部分合同通常會說他們擁有我爲他們製作的代碼(以及代碼的版權),然後他們可以根據自己的需要做任何事情。

如果您有不同的關係,您繼續擁有代碼並需要阻止他們閱讀和/或修改代碼,那麼問題與其他語言的問題是一樣的:您依賴於技術限制和法律限制的混合,旨在儘可能限制您的需求,同時儘量減少最終用戶的不便。

例如,

  1. 您可以使用命令pcode混淆您的代碼。這樣可以防止幾乎所有不確定的人看到你的代碼並修改它(儘管存在一些漏洞),但是他們仍然能夠在MATLAB中運行它。缺點可能是你的代碼在未來的MATLAB版本中可能無法執行,所以你可能需要再次支持它才能在以後修復。爲了緩解這種情況,您可以在合同或許可協議中指定僅支持特定版本的MATLAB。
  2. 您可以使用MATLAB編譯器生成一個獨立的庫或可執行文件,其中包含加密形式的代碼。缺點可能是他們寧願使用MATLAB內部的代碼。好處在於,與第一種選擇不同,它不需要MATLAB,因此您在將來不容易出現向後兼容性問題。
  3. 您可以在您的MATLAB應用程序中包含許可證管理代碼。你可以推出你自己的產品,也許可以通過爲加密技術調用一些Java(你可能無法使它變得非常安全,除非你非常有才華,但你可能會做出一些簡單而可行的方法) ,或者你可以購買第三方的C庫來做好,並從MATLAB調用它們。
  4. 您可以簡單地在您的代碼中放置版權行,說明您擁有版權,並根據特定條款向其授予代碼,例如他們可以查看,使用它,但不能修改或重新發布它。如果你真的想要,你可以讓他們簽署一份保密協議,要求他們不要與第三方討論代碼的內容。

雖然現有的技術限制在MATLAB有點不同比他們將是一個編譯語言如C或Java,在一天結束那些只是曾經有保持誠實的人誠實 - 任何人都確定他們最終能夠避開他們,他們可能會給誠實的人帶來不便,他們會厭煩他們不喜歡你的產品或服務。

更好地使用非常輕的技術限制,晶瑩剔透的合同和許可條款以及信任的混合物。

< 廣告>我提供的諮詢服務之一是建議和幫助準備用於部署的MATLAB代碼,包括保護它。如果您認爲您會從中受益,請與我們聯繫。 < /advert>

+0

#2的另一個缺點是它會依賴於平臺,因此您需要爲每個操作系統編譯版本(在某些情況下可能需要32位/ 64位)。還有[Matlab Compiler不支持的一些工具箱功能](http://www.mathworks.com/products/compiler/supported/compiler_support.html;jsessionid=a3d34359fc44dfda0912446eed2d)。 – horchler 2014-12-08 14:12:58

-1

您可以使用Matlab編譯器並將您的代碼編譯到windows的exe文件中。這是一家公司通常所期望的。某些擁有R的人可能會要求您提供原始的m代碼或具體功能,具體取決於您與他們的關係/合同。我被要求多次提供密碼,並在我的合同上說我想把這些信息給他們。 (基於英國)

+0

如果我將它轉換爲.exe,那麼matlab如何運行它?如果它在cmd中工作,那麼如何轉換相同? – anurag 2014-12-08 10:10:06

相關問題