Matlab中面向对象能力并不强,通过使用jython引擎能够对其功能扩展.
1 编辑classpath.txt增加jython.jar
在matlab中输入
which classpath.txt
结果:
/usr/local/MATLAB/R2013a/toolbox/local/classpath.txt
编辑该文件,加入
/home/your_user/jython2.5.3/jython.jar
2 又一次启动matlab
3 编写代码測试
import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; mg = ScriptEngineFactory(); jy = mg.getEngineByName('jython')能够看到结果:
jy =
org.python.jsr223.PyScriptEngine@432034a
jy.eval('print("Hello")') jy.eval('def add(a, b): return a + b') jy.eval('add(5, 5)') jy.put('name', 'Hello') jy.get('name') v = rand(5, 5) jy.put('vals', v) jy.get('vals')
假设希望使用其它脚本引擎, 如javascript, 能够參考上篇博文.
4 调用jython解释器实现调用python代码文件
import org.python.util.PythonInterpreter intp = PythonInterpreter(); intp.exec('a = 5;') intp.get('a');
但实际上exec方式与3中方法从功能上是一致的;
考虑到javacript engine的接口一致性,建议用3中方法.