2017-10-31 4 views
1

配列にリアルタイムデータを格納する際に問題があります。データをJavaの2D配列にリアルタイムで格納

私は、リアルタイムでデータを読み込み、1次元配列を持っている、これは結構です、それは私にこのようなデータを印刷しています:

D/this is my array: arr: = [-1.43, -3.5916, 2.71, 4.42, -4.4, 0.0] 

このデータは、一つのサンプルを表し、私は毎秒データ1000個のサンプルを読んでいますしたがって、この配列を印刷すると、読書ごとに私に読書が表示されます。つまり、1秒間に(異なるデータで)画像のような1000の配列を意味します。

私はそのデータを処理する必要があるので、最初の256個のサンプルを2次元配列に格納し、その配列を処理し、次の256個のサンプルなどで新しいサンプルを取得する必要があります。これを行うことができました。

transformed私の1Dアレイがサンプルをサンプルで表示する場合は、そしてbuffはデータを格納したい行列です。

これは私が変換を受ける方法ですが、それは最初のショート[]、その後、私は、二重に変換しています:これは私がこれまで持っているものである

short[] yaxis = msg.getData().getShortArray(BiopluxService.KEY_FRAME_DATA); 
double[] transformed = new double[yaxis.length]; 
for (int j = 0; j < yaxis.length; j++) { 
    transformed[j] = (double) yaxis[j]; 
} 

double[][] buff = new double[256][6]; 
for (int f = 0; f < 256; f++) { 
    buff[f] = transformed; 
} 
Log.d("this is my array", "arr: " + Arrays.deepToString(buff)); 

しかし、私のバフ配列は同じ値を持っています。

+0

すべての行が同じ配列を指すように設定する値であれば、変数またはメソッド呼び出しが変換されます – jrtapsell

+0

変換された状態を確認できるように質問が更新されました – user8559076

+0

値を一度に入力し、すべての行を同じ値に設定しますか?もしそうなら、それは問題になるでしょう – jrtapsell

答えて

0

なぜ配列は、あなたがこのコードを実行した場合、あなたはすべての行が同じ配列を指すように設定されている

異なる値が含まれていません:thisツールを通して

public class ClassNameHere { 
    public static void main(String[] args) { 
     double[][] d = new double[5][]; 

     double[] row = {1,2,3}; 
     for (int i = 0; i < 5; i++) { 
     d[i] = row; 
     } 
    } 
} 

を、あなたが見ることができますこのコードの最後では、すべての行がまったく同じ配列を指しているので、それらはすべて同じになります。あなたが変換たびに、新しい配列を作成し、その配列にロードするので、すべての行は、それらが異なる値を持つことができるように、異なる配列でどのように

を修正する

+0

ええ、私は理解していますが、私はこれを行う方法がわかりません。もし私が変形された[1]のような異なる配列を作成すると、時々256個以上の変換が行われ、そのときに私は2D配列を再起動し、次に変換された256個の配列を作成する必要があります。または、私がそれを正しくしていないかどうかわからない、どのように私に見せてくれますか? – user8559076

+0

各読み値セットに対して新しい変換を作成し、その中にデータをロードし、指定されたインデックスのバッファを新しい配列を指すように設定し、各項目に対してこのプロセスを繰り返します – jrtapsell

関連する問題