Error problem with evalString

1 回表示 (過去 30 日間)
Ks
Ks 2014 年 11 月 30 日
回答済み: Samuel Gray 2021 年 10 月 7 日
Hello, I have a problem. I have a double matrix in java, when I pass it to matlab for some calculs I got this error : cannot get array res for matlab workspace. Can you help me please?
The java code:
double [][]m1={{1, 2, 3},{4, 5, 6}};
double [][]m2={{1, 2, 3},{1, 2, 3}};
JMatLink engine1 = new JMatLink();
engine1.engOpen();
engine1.engOutputBuffer();
engine1.engEvalString("res=fproductMatrix("+m1+","+m2+");");
System.out.println("read output buffer of matlab ");
double [][] produit= engine1.engGetArray("res");
engine1.engClose();
Knowing that fproductMatrix (.m file ) is a matlab function which return the product of two matrix. Thank you in advance.

回答 (1 件)

Samuel Gray
Samuel Gray 2021 年 10 月 7 日
I don't see any documentation that says that evalstring needs a buffer. I'd try running it with setvisible and without engoutputbuffer just to see what happens without having to pass the text back. Then run it before and after configuring the output buffer, at least in C you can't just call it without some parameters to indicate the buffer size and the termination location.

カテゴリ

Help Center および File ExchangePlatform and License についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by