|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
jdk1.6+eclipse3.4.2+matlab2007a (matlab builder for java)
在java class中编写以下方法调用voldeno.m文件:
public void invokeMat(ArrayList<Double> alist){
System.out.println("Begin:invokeMat");
MWNumericArray x=null;
Object[] y=null;
oilvoldenoclass deno=null;
int len=alist.size();
System.out.println("oilinputdata length is"+len);
double[] oilinput=new double[len];
oiloutput=new double[len];
for (int i = 0; i < oilinput.length; i++) {
oilinput=alist.get(i);
}
try {
System.out.println("Begin denoise");
x = new MWNumericArray(oilinput,MWClassID.DOUBLE);
System.out.println("MWNumericArray x is "+x);
System.out.println("output x is over!");
deno=new oilvoldenoclass();
y=deno.voldeno(1,x);
System.out.println("Object[] y length is "+y.length);
System.out.println("Object[] y is "+y);
System.out.println("output y is over!");
if(y.length==len){
for(int i=0;i<len;i++){
oiloutput=((MWNumericArray)y[0]).getDouble(i);
}
}else{
System.out.println("Invoke matlab function 'voldeno.m' error!");
}
}catch (Exception e){
System.out.println(e);
}
finally{
/* Free native resources */
MWArray.disposeArray(x);
MWArray.disposeArray(y);
if (deno!= null)
deno.dispose();
}
System.out.println("End:invokeMat");
}
voldeno.m文件如下:
function out= voldeno(x)
%VOLDENO 函数对信号x去噪
% x原始信号,为离散电压的数组
% out为降噪信号,为离散电压的数组
% 画出原始信号
subplot(311), plot(x), axis([1 500 0 10]);
title('原始信号');
% 对x使用sym8小波进行5层分解,得到高频系数。使用SURE阈值、软阈值进行降噪
lev = 5;
out = wden(x,'heursure','s','one',lev,'sym8');
subplot(313), plot(out), axis([1 500 0 10]);
title('降噪信号 - heuristic SURE');
java 项目中添加了javabuilder.jar 和voldeno相关的jar包oilvoldeno.jar
运行时出现以下错误,请问为什么。
??? Undefined function or variable 'reporterrorlogs'.
Error in ==> matlabrc at 277
com.mathworks.toolbox.javabuilder.MWException: An error occurred while initializing the component. |
|