在网上没发现这方面的文章,对于初学者来说是很不友好滴,故作此文,以便自己和萌新查阅。。。

关于Matlab如何生成jar包这块,网上还是能找到一些的,我就不多赘述了。
(我用Matlab 2018a的版本怎么都无法打包成功,低版本可以,有知道的大佬欢迎留言指教)

直接来看Java如何调用:
这是我matlab中的函数,传入一个数值,返回根据数值生成的随机数向量
Java调用Matlab生成的jar包中的函数
将所需jar包都导入依赖后,实例一个matlab中方法的对象

//我这里在matlab打包时指定的类名叫Noise
Noise noise = new Noise();
//实例化后就可以通过对象调用方法了
Object[] wn = noise.WhiteNoise(1, 44100);

调用方法时我们可以看到它自动生成了3个同名方法
Java调用Matlab生成的jar包中的函数
这里我们选用中间的,方法参数具体含义: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];

Java调用Matlab生成的jar包中的函数
往下滚还有更多类型,选择需要的。

//我这里在matlab打包时指定的类名叫Noise
Noise noise = new Noise();
//实例化后就可以通过对象调用方法了
Object[] wn = noise.WhiteNoise(1, 44100);
MWNumericArray output = (MWNumericArray) wn[0];
double[] data = output.getDoubleData();//注意,如果返回值不是向量(数组),而是一个值,直接用wn[0]即可。

相关文章:

  • 2022-01-18
  • 2022-01-13
  • 2021-04-17
  • 2021-12-21
  • 2021-11-28
猜你喜欢
  • 2021-10-10
  • 2021-11-05
  • 2021-11-30
  • 2021-03-27
  • 2021-11-21
  • 2021-10-30
  • 2021-08-25
相关资源
相似解决方案