Matlab中使用jython扩展功能

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 =

[email protected]

jy.eval(‘print("Hello")‘)
jy.eval(‘def add(a, b):\n   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中方法.

时间: 2024-12-09 14:38:15

Matlab中使用jython扩展功能的相关文章

Matlab中imagesc用法

来源:https://ww2.mathworks.cn/help/matlab/ref/imagesc.html?searchHighlight=imagesc&s_tid=doc_srchtitle imagesc 显示使用经过标度映射的颜色的图像 全页折叠 语法 imagesc(C) imagesc(x,y,C) imagesc('CData',C) imagesc('XData',x,'YData',y,'CData',C) imagesc(___,Name,Value) imagesc(

【caffe-windows】 caffe-master 之Matlab中model的分类应用

此篇讲述在matlab中,如何将训练好的model用于图像分类.将以mnist为例,主要用到caffe-master\matlab\demo 下的classification_demo.m ,可参考我之前的博客 [caffe-windows] caffe-master 之 classfication_demo.m 超详细分析 (http://blog.csdn.net/u011995719/article/details/54135189) 首先贴大神的博客:http://blog.csdn.n

MATLAB中fft

一般的fft需要将点数补成2的整数次幂,MATLAB中有fft函数,输入N点序列则输出也是N点序列,其中N不一定为2的整数次幂.所以会疑惑MATLAB做的fft和N点序列对应的dft是否一样.经过验证,MATLAB中对N点序列做fft的结果与N点dft的结果是完全一样的,没有对N点序列进行补0后再做操作. 下面是MATLAB代码和结果. n = 0: 49; A = 444.128; a = 50 * sqrt(2.0) * pi; w0 = 50 * sqrt(2.0) * pi; T = 0

matlab中hold指令、figure指令及subplot指令的使用

一.hold指令使用 正常情况下,plot指令显示figure时,以前的数据丢失了.使用hold on指令后,此后添加的一系列plot曲线将叠加在前一个图上当使用hold off后,恢复为默认状况,plot后将取代旧的figure 代码: % 提示 disp ('该功能练习hold功能'); %初始化快捷式数组 x=-2*pi:pi/20:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,'b-'); title('sin(x)和cos(x)图形'); %该语句必须在p

matlab中同一文件定义子函数的方法

在matlab中一个.m文件中可以有多个的子函数,但仅能有一个主函数,并且M文件名必须和主函数相同在一个m文件中通常有两种定义子函数的方法: 1.嵌套定义 myfunc1会和主函数共享变量名.这种情况下,使用相同的变量名,如果不是故意为之,就不合适了.function mainFunc(... a = myfunc1();...function myfunc1()...end end2. 非嵌套定义function mainFunc()...a = myfunc1();...end functi

Python 之 h5py 读取 matlab 中 .mat 文件 cell 方法浅析

采用 Python 读取 matlab 中 .mat文件的方法有很多,中外文的论坛上都不少,相关博文 可见:Python 从 mat 文件的读写和存储 到 h5py 文件包. 详址:http://blog.csdn.net/u013630349/article/details/47090299 但是,在读取matlab文件的时候,往往不是一层 .mat 就足以解决问题的,.mat 文件中可能是存放的 cell(100*200) 数据, cell(100*200)数据中又分为多个 cell .那么

Matlab中怎样将.dat格式的文件进行加载转化为一个矩阵??

在网上下载了一个数据集rating.dat,格式为.dat的,要在matlab中使用,必须将其转化为一个.mat格式的矩阵,下面写一下具体步骤: 第一步:打开matlab,界面如图: 然后点击“打开”选项:界面如下 例如选择rating.dat 文件 点击上图右下角“打开”,得到如下界面: 然后在“列分隔符”里进行选择,由于原文本文件格式如下图: 所以选择“列分隔符”中的::,然后选中所有数据,再点击"导入",选择其中的“导入数据”,则得到结果为m*4的矩阵:

MATLAB中绘制质点轨迹动图并保存成GIF

工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t).^2);y = sin(2*t).*(sin(t).^2);z = t;comet(x,y,0.1); %绘制二维%comet3(x,y,z,0.1); %绘制三维 这有一个问题在于comet或comet3无法控制绘制的动画的速度,为了实现这一点,一个可行的方法是重写comet和comet3,在每

matlab中filter,conv之间的区别

conv是做卷积,就是按照书上的做法,先翻转,在一步步平移,得出结果.对于两个长度分别为n,m的序列,卷积结果长度为m+n-1 filter是做滤波,其实原理跟卷积是想通的,只不过处理结果的方法不同,先看示例程序: x=[1,2,3,4,5]; h=[1,1,1]; y1=conv(h,x) y2=filter(h,1,x) y3=filter(x,1,h) y4=filter(x,1,[h,zeros(1,4)]) 结果为: y1 = 1     3     6     9    12