1
我需要幫助通過MatlabControl在Java和MATLAB之間進行連接。MATLAB環境下運行MATLAB函數時發生異常
首先,我想在演練中測試代碼,但每一次我得到相同的異常:
myfunc.m:
function myfunc()
disp('hello from MYFUNC')
end
的Java:
class ShowImage {
public static void main(String[] args)
throws MatlabConnectionException, MatlabInvocationException
{
// create proxy
MatlabProxyFactoryOptions options =
new MatlabProxyFactoryOptions.Builder()
.setUsePreviouslyControlledSession(true)
.build();
MatlabProxyFactory factory = new MatlabProxyFactory(options);
MatlabProxy proxy = factory.getProxy();
// call builtin function
proxy.eval("disp('hello world')");
// call user-defined function (must be on the path)
proxy.eval("addpath('E:\\vm')");
proxy.feval("myfunc");
proxy.eval("rmpath('E:\\vm)");
// close connection
proxy.disconnect();
}}
和這裏的例外:
Exception in thread "main" matlabcontrol.MatlabConnectionException: Could not launch MATLAB. Command: [matlab, -r, javaaddpath 'C:\Users\walaa\Desktop\matlabcontrol-4.0.0.jar'; matlabcontrol.MatlabClassLoaderHelper.configureClassLoading(); javarmpath 'C:\Users\walaa\Desktop\matlabcontrol-4.0.0.jar'; matlabcontrol.MatlabConnector.connectFromMatlab('PROXY_RECEIVER_42dd44d9-815e-41ad-bec9-e469718b5710', 2100);]
at matlabcontrol.RemoteMatlabProxyFactory.createProcess(RemoteMatlabProxyFactory.java:305)
at matlabcontrol.RemoteMatlabProxyFactory.requestProxy(RemoteMatlabProxyFactory.java:116)
at matlabcontrol.RemoteMatlabProxyFactory.getProxy(RemoteMatlabProxyFactory.java:134)
at matlabcontrol.MatlabProxyFactory.getProxy(MatlabProxyFactory.java:81)
at ShowImage.main(ShowImage.java:19)
Caused by: java.io.IOException: Cannot run program "matlab": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at matlabcontrol.RemoteMatlabProxyFactory.createProcess(RemoteMatlabProxyFactory.java:292)
... 4 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 6 more
我不知道什麼是問題,任何幫助將不勝感激!
感謝ü非常:)現在它的從java打開matlab,但是你知道我是否可以通過MatlabControl從Java通過圖像路徑到matlab,反之亦然?因爲我正在製作java圖形用戶界面來匹配兩個數字之間的一個我打開在Java GUI和另一個輸出matlb匹配函數,,,如果你可以指導我一點點在MatlabControl功能,因爲我是新來的, ,再次感謝 。 – user1318251
@ user1318251:嘗試傳遞圖像名稱時,你在線調用你的MATLAB函數:'proxy.eval(「myMatlabFunction('/ path/to/image.png')」);' – Amro
我做了你告訴我的,但我得到了這個錯誤「錯誤使用eval 未定義的函數'hgr'輸入參數的類型'字符'」和我的matlab函數是 – user1318251