2012-05-12 98 views
3

讓我解釋我正在嘗試做什麼。我有一個應用程序在Matlab編碼,我想提供給Matlab用戶和非Matlab用戶。 所以你會說:只編譯它並部署一個可執行文件。精細。是否可以在MATLAB環境內外執行編譯代碼?

但是,部署的應用程序在某種程度上受限於您可以執行的操作(非常重要的是,您不能執行其他M文件),因此我想也可以讓Matlab用戶從Matlab內啓動已部署的應用程序,以及爲這些人提供這些高級功能。 那麼可能嗎?

當然,我可以提供兩個版本:一個.exe和.M但這不是真正優雅,也許有一個很好的把戲做到這一點。 有什麼想法?

+0

我不明白的東西:你的應用程序打算做什麼?我的意思是,如果它試圖做一些不能部署到.exe文件的東西,那麼實際上你必須真的有兩個不同的應用程序(不只是版本)。你能否提供一個你真正要求的例子。 – eulerleibniz

回答

0

Matlab的不具有內置的功能來做到這一點,並檢測是否有人安裝了Matlab或沒有很大關係的操作系統。

+0

如果有一個名爲內置庫的可執行文件,並且有一個調用相同庫的M文件?用戶可以根據他的需要啓動M或可執行文件。 –

1

可以在部署的應用程序使用eval。您還可以閱讀.m文件,因爲它們只是文本。 因此,閱讀文件,逐行評估,然後你就可以在編譯好的Matlab程序中使用3d方腳本.m文件。

您將無法使用的功能在這種方式中,只有腳本。

我不知道的唯一的事情是,它是否是合法的。我不能保證,你必須自己聯繫Mathworks。

+0

我不確定你能做到這一點。 見羅蘭博客:http://blogs.mathworks.com/loren/2008/06/19/writing-deployable-code/#11 –

+0

@Andrey - 這將工作MATLAB腳本,但Matlab的功能呢? 您無法逐行對它們進行評估,因爲在您調用它們之前需要定義它們。這可能是可行的,但你需要很多代碼。你不需要編寫你自己的Matlab解析器來完成這個工作嗎? – grantnz

+0

@grantnz,你是對的,我會更新答案 –

相關問題