eclipse中java调用matlab函数中的一点点经验
2013-08-03 13:39
323 查看
近期需要计算正态分布反积累分布函数值,这个函数无法解析表达,一般是通过数值方法逼近求值,工程上常用各种工具计算,如matlab、EXCEL、R语言、SAS等。我的主程序用java写的,需要调用matlab的norminv函数计算正态分布反积累分布函数值。
配置过程参考网上的大量帖子,包括matlab版本(要高一些)、配置环境变量等。总体比较顺利。后来遇到两个我问题。
一是运行时发现报错输入参数数量不对“Not enough input arguments.”、“Too many input arguments.”等,后来在网上查过之后发现我自定义的matlab方法名是norminv,与matlab自带函数norminv重名了。改名之后就好了。
二是关于计算精度,以norminv函数为例,x=norminv(0.2,0,1)在matlab中直接运行,可以得到函数值-0.841621233572914,但在java中调用却输出-1.0,即只保留了整数位,小数位被四舍五入了。后来发现在java调用时参数必须全部写成浮点的形式x=norminv(0.2, 0.0, 1.0),即可得到想要的值-0.8416212335729143。
我的Matlab 是2012a,java是1.6,Eclipse 是3.6 Helios。
配置过程参考网上的大量帖子,包括matlab版本(要高一些)、配置环境变量等。总体比较顺利。后来遇到两个我问题。
一是运行时发现报错输入参数数量不对“Not enough input arguments.”、“Too many input arguments.”等,后来在网上查过之后发现我自定义的matlab方法名是norminv,与matlab自带函数norminv重名了。改名之后就好了。
二是关于计算精度,以norminv函数为例,x=norminv(0.2,0,1)在matlab中直接运行,可以得到函数值-0.841621233572914,但在java中调用却输出-1.0,即只保留了整数位,小数位被四舍五入了。后来发现在java调用时参数必须全部写成浮点的形式x=norminv(0.2, 0.0, 1.0),即可得到想要的值-0.8416212335729143。
我的Matlab 是2012a,java是1.6,Eclipse 是3.6 Helios。
相关文章推荐
- 在Java程序中调用Matlab函数
- Java调用MATLAB函数
- java中调用Matlab的函数+注意事项
- java中调用matlab的BP神经网络工具箱函数
- java 中调用 Matlab 的函数
- 在Java程序中调用Matlab函数
- Java调用Matlab函数笔记
- java/eclipse调用matlab功能函数
- java 中调用 Matlab 的函数
- java中调用Matlab的函数+注意事项
- 在Java中调用MATLAB函数
- java调用matlab函数接口的两种方案
- 在Java程序中调用Matlab函数
- java中调用matlab的函数
- Java调用Matlab函数以及同时配置多版本JDK的方法
- Java端无需修改正确调用Matlab函数方法
- Java调用Matlab生成的函数,参数为矩阵怎么传递
- java 中调用 Matlab 的函数
- JNI(java Native Interface)linux下 java调用本地c函数
- JNI中的各种函数对照表 方法调用对照表------java----jni-----native---方便查询