0

私のアプリケーションでは、データベースから取得したデータに基づいて、いくつかの機能(平均、最大、ビン化された分布など)を計算します。しかし、これらの機能をファイルに書き込もうとすると、特定の機能が変数である場合にのみnullが表示されます。私は問題の原因を調べて見つけようとしましたが、解決策を見つけることができませんでした。これは、ファイルでnullを示す値を計算する場所です(binz10でのみnullを示します):

i=1;

    first=minZ;
    next=minZ+zInterval;
    while(i<=10){
        Cursor myCursor2;
        if(i==10)
            myCursor2=db.rawQuery("SELECT * from Koordinatlar where zKoor>="+first+" AND zKoor<="+next+" AND zaman>="+firstTime+" AND zaman<="+lastTime,null);
        else
            myCursor2=db.rawQuery("SELECT * from Koordinatlar where zKoor>="+first+" AND zKoor<"+next+" AND zaman>="+firstTime+" AND zaman<="+lastTime,null);       

        myContentValues.put("binZ"+i, myCursor2.getCount());
        i++;
        first=next;
        next=next+zInterval;
    }

これは私がそれをファイル(csv形式)に書き込む場所です:

private void dosyayaYaz(){

    Cursor dataReader;

        File myFile;  
        myFile= new File("sdcard/"+label+"-features.csv");


            try {
                myFile.createNewFile();
            FileOutputStream fOut = new FileOutputStream(myFile);
            OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);

            myOutWriter.append("ortX;ortY;ortZ;stdX;stdY;stdZ;maxX;maxY;maxZ;aadX;aadY;aadZ;averageResultantAcc;binX1;binX2;binX3;binX4;binX5;binX6;binX7;binX8;binX9;binX10;binY1;binY2;binY3;binY4;binY5;binY6;binY7;binY8;binY9;binY10;binZ1;binZ2;binZ2;binZ3;binZ4;binZ5;binZ6;binZ7;binZ8;binZ9;binZ10;label");
            myOutWriter.append("\n");


            dataReader=db.rawQuery("SELECT * FROM Features", null);

            while(dataReader.moveToNext()){


                Float ortX1=(dataReader.getFloat(dataReader.getColumnIndex("ortX")));
                Float ortY1=(dataReader.getFloat(dataReader.getColumnIndex("ortY")));
                Float ortZ1=(dataReader.getFloat(dataReader.getColumnIndex("ortZ")));
                Float maxX1=(dataReader.getFloat(dataReader.getColumnIndex("maxX")));
                Float maxY1=(dataReader.getFloat(dataReader.getColumnIndex("maxY")));
                Float maxZ1=(dataReader.getFloat(dataReader.getColumnIndex("maxZ")));
                Float stdX1=(dataReader.getFloat(dataReader.getColumnIndex("stdX")));
                Float stdY1=(dataReader.getFloat(dataReader.getColumnIndex("stdY")));
                Float stdZ1=(dataReader.getFloat(dataReader.getColumnIndex("stdZ")));
                Float aadX1=(dataReader.getFloat(dataReader.getColumnIndex("aadX")));
                Float aadY1=(dataReader.getFloat(dataReader.getColumnIndex("aadY")));
                Float aadZ1=(dataReader.getFloat(dataReader.getColumnIndex("aadZ")));

                int binX1=(dataReader.getInt(dataReader.getColumnIndex("binX1")));
                int binX2=(dataReader.getInt(dataReader.getColumnIndex("binX2")));
                int binX3=(dataReader.getInt(dataReader.getColumnIndex("binX3")));
                int binX4=(dataReader.getInt(dataReader.getColumnIndex("binX4")));
                int binX5=(dataReader.getInt(dataReader.getColumnIndex("binX5")));
                int binX6=(dataReader.getInt(dataReader.getColumnIndex("binX6")));
                int binX7=(dataReader.getInt(dataReader.getColumnIndex("binX7")));
                int binX8=(dataReader.getInt(dataReader.getColumnIndex("binX8")));
                int binX9=(dataReader.getInt(dataReader.getColumnIndex("binX9")));
                int binX10=(dataReader.getInt(dataReader.getColumnIndex("binX10")));

                int binY1=(dataReader.getInt(dataReader.getColumnIndex("binY1")));
                int binY2=(dataReader.getInt(dataReader.getColumnIndex("binY2")));
                int binY3=(dataReader.getInt(dataReader.getColumnIndex("binY3")));
                int binY4=(dataReader.getInt(dataReader.getColumnIndex("binY4")));
                int binY5=(dataReader.getInt(dataReader.getColumnIndex("binY5")));
                int binY6=(dataReader.getInt(dataReader.getColumnIndex("binY6")));
                int binY7=(dataReader.getInt(dataReader.getColumnIndex("binY7")));
                int binY8=(dataReader.getInt(dataReader.getColumnIndex("binY8")));
                int binY9=(dataReader.getInt(dataReader.getColumnIndex("binY9")));
                int binY10=(dataReader.getInt(dataReader.getColumnIndex("binY10")));

                int binZ1=(dataReader.getInt(dataReader.getColumnIndex("binZ1")));
                int binZ2=(dataReader.getInt(dataReader.getColumnIndex("binZ2")));
                int binZ3=(dataReader.getInt(dataReader.getColumnIndex("binZ3")));
                int binZ4=(dataReader.getInt(dataReader.getColumnIndex("binZ4")));
                int binZ5=(dataReader.getInt(dataReader.getColumnIndex("binZ5")));
                int binZ6=(dataReader.getInt(dataReader.getColumnIndex("binZ6")));
                int binZ7=(dataReader.getInt(dataReader.getColumnIndex("binZ7")));
                int binZ8=(dataReader.getInt(dataReader.getColumnIndex("binZ8")));
                int binZ9=(dataReader.getInt(dataReader.getColumnIndex("binZ9")));
                int binZ10=(dataReader.getInt(dataReader.getColumnIndex("binZ10")));

                String tempLabel=(dataReader.getString(dataReader.getColumnIndex("label")));

                Float averageResultantAcc1=(dataReader.getFloat(dataReader.getColumnIndex("averageResultantAcc")));


                myOutWriter.append(String.format("%f",ortX1)+";"+String.format("%f",ortY1)+";"+String.format("%f",ortZ1)+";"+String.format("%f",stdX1)+";"+String.format("%f",stdY1)+";"+String.format("%f",stdZ1)+";"+String.format("%f",maxX1)+";"+String.format("%f",maxY1)+";"+String.format("%f",maxZ1)+";"+String.format("%f",aadX1)+";"+String.format("%f",aadY1)+";"+String.format("%f",aadZ1)+";"+String.format("%f",averageResultantAcc1)+";"+String.format("%d",binX1)+";"+String.format("%d",binX2)+";"+String.format("%d",binX3)+";"+String.format("%d",binX4)+";"+String.format("%d",binX5)+";"+String.format("%d",binX6)+";"+String.format("%d",binX7)+";"+String.format("%d",binX8)+";"+String.format("%d",binX9)+";"+String.format("%d",binX10)+";"+String.format("%d",binY1)+";"+String.format("%d",binY2)+";"+String.format("%d",binY3)+";"+String.format("%d",binY4)+";"+String.format("%d",binY5)+";"+String.format("%d",binY6)+";"+String.format("%d",binY7)+";"+String.format("%d",binY8)+";"+String.format("%d",binY9)+";"+String.format("%d",binY10)+";"+String.format("%d",binZ1)+";"+String.format("%d",binZ2)+";"+String.format("%d",binZ3)+";"+String.format("%d",binZ4)+";"+String.format("%d",binZ5)+";"+String.format("%d",binZ6)+";"+String.format("%d",binZ7)+";"+String.format("%d",binZ8)+";"+String.format("%d",binZ9)+";"+String.format("%d",binZ10)+";"+tempLabel);
                myOutWriter.append("\n");

            }

            myOutWriter.close();
            fOut.close();



            Toast toast=Toast.makeText(this.myContext, "Feature'lar başarıyla üretilip dosyaya yazıldı...",Toast.LENGTH_SHORT);
            toast.show();

        } 
        catch(IOException ex){
            Toast toast=Toast.makeText(this.myContext, "Dosyaya yazma sırasında bir hata oluştu"+" "+ex.toString(),Toast.LENGTH_LONG);
            toast.show();
        }

}
4

1 に答える 1

0

私はついに解決策にたどり着くことができます。すべての問題は、ファイルに機能テキストを入力するときに注意しなかったことです。

于 2013-01-19T20:56:36.840 に答える