在网上没发现这方面的文章,对于初学者来说是很不友好滴,故作此文,以便自己和萌新查阅。。。
关于Matlab如何生成jar包这块,网上还是能找到一些的,我就不多赘述了。
(我用Matlab 2018a的版本怎么都无法打包成功,低版本可以,有知道的大佬欢迎留言指教)
直接来看Java如何调用:
这是我matlab中的函数,传入一个数值,返回根据数值生成的随机数向量
将所需jar包都导入依赖后,实例一个matlab中方法的对象
//我这里在matlab打包时指定的类名叫Noise
Noise noise = new Noise();
//实例化后就可以通过对象调用方法了
Object[] wn = noise.WhiteNoise(1, 44100);
调用方法时我们可以看到它自动生成了3个同名方法
这里我们选用中间的,方法参数具体含义:int型表示你matlab中定义的函数的返回值数量,Object…可变长参数传函数所需的参数,有几个写几个。
可以看到返回类型为Object[],但是这个数组我们还不能使用,还得进一步转换。
将返回的Object[]强转成javabuilder库中的MWNumericArray对象,通过MWNumericArray对象来获取我们所需类型的数组
//我这里在matlab打包时指定的类名叫Noise
Noise noise = new Noise();
//实例化后就可以通过对象调用方法了
Object[] wn = noise.WhiteNoise(1, 44100);
MWNumericArray output = (MWNumericArray) wn[0];
往下滚还有更多类型,选择需要的。
//我这里在matlab打包时指定的类名叫Noise
Noise noise = new Noise();
//实例化后就可以通过对象调用方法了
Object[] wn = noise.WhiteNoise(1, 44100);
MWNumericArray output = (MWNumericArray) wn[0];
double[] data = output.getDoubleData();//注意,如果返回值不是向量(数组),而是一个值,直接用wn[0]即可。