2017-10-31 4 views
1

배열에 실시간 데이터를 저장하는 데 문제가 있습니다. 데이터를 Java의 2D 배열에 실시간으로 저장하십시오.

내가 실시간으로 데이터를 읽는 1D 배열을 가지고,이 괜찮이며 다음과 같이 나에게 데이터를 인쇄하는 것 :

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

이 데이터는 하나 개의 샘플을 나타내고, 나는 데이터를 초당 1,000 샘플을 읽고 있어요 그래서이 배열을 인쇄하면 독서 당 읽음을 보여 주며 초당 다른 데이터가있는 그림처럼 1000 개의 배열을 의미합니다.

이제이 데이터를 처리해야하므로 처음 256 샘플을 2D 배열에 저장하고 배열을 처리 한 후 다음 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