问题描述
代码如下,主要是做一些统计;问题应该处在从excel读取的过程中,没有飘红,但是编译时还是报错囧……希望大家帮忙看下,不甚感激……packagesy2;importjxl.*;importjxl.read.biff.*;importjava.io.*;importjava.io.File;publicclassStatistics{publicvoidQuickSort(double[]pData,intleft,intright)//快速排序{inti,j;doublefirst,temp;i=left;j=right;first=pData[left];while(true){while((++i)<right-1&&pData[i]<first);while((--j)>left&&pData[j]>first);if(i>=j)break;temp=pData[i];pData[i]=pData[j];pData[j]=temp;}pData[left]=pData[j];pData[j]=first;if(left<j)QuickSort(pData,left,j);if(right>i)QuickSort(pData,i,right);}publicstaticvoidmain(String[]args){double[][]A=newdouble[365][9];//全部数据从excel输入double[]err=newdouble[365];Workbookbook=null;try{book=Workbook.getWorkbook(newFile("C:/Users/HP/Desktop/Test.xls"));}catch(FileNotFoundExceptione){e.printStackTrace();}catch(BiffExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}//getaSheetobject.Sheetsheet=book.getSheet(0);//get1st-Column,1st-Rowcontent.introws=sheet.getRows();intcols=sheet.getColumns();Cellcell=null;for(inti=0;i<rows;i++){for(intj=0;j<cols;j++){cell=sheet.getCell(i,j);A[i][j]=Integer.parseInt(cell.getContents());System.out.println(A[i][j]);}}book.close();for(inti=0;i<365;i++){//总计循环365次double[]temp=newdouble[9*(i+1)];//存放排完序的数组for(intj=0;j<i;j++){for(intk=0;k<9;k++){temp[j*9+k]=A[j][k];}}Statisticsp=newStatistics();p.QuickSort(temp,0,9*(i+1)-1);//排序//确定分组doublem=(temp[9*(i+1)]-temp[0])/0.05;intn=(int)m+1;//确定分组数double[]B=newdouble[n+1];B[0]=temp[0];//确定分组下限for(intj=1;j<n+1;j++){B[j]=B[j-1]+m;}//频数统计intf[]=newint[n];for(intj=0;j<n;j++){//将初值设置为0f[j]=0;}intk=1;for(intj=0;j<temp.length;j++){while(k!=n){if(temp[j]<B[k]){f[k-1]++;break;}elsek++;}}doubleg[]=newdouble[n];for(intj=0;j<n;j++){//频率统计g[j]=f[j]/(9*(i+1));}//正太拟合下的概率doublemean=0;//求均值for(intj=0;j<temp.length;j++){mean=mean+temp[j];}mean=mean/temp.length;doublesd=0;//求标准差for(intj=0;j<temp.length;j++){sd=sd+(temp[j]-mean)*(temp[j]-mean);}sd=Math.sqrt(sd/temp.length);//double[][]z=newdouble[300][2];double[]pi=newdouble[n];for(intj=0;j<n;j++){pi[j]=(B[j]-mean)/sd-(B[j+1]-mean)/sd;//数组匹配+相关规则}doublemiss=0;for(intj=0;j<n;j++){miss=miss+temp.length/pi[j]*(g[j]-pi[j])*(g[j]-pi[j]);}err[i]=miss;}}}
解决方案
解决方案二:
什么错误你都没说呀?