2012-07-26 3 views
0

큰 배열이 있고 640000 개의 요소 유형 double이 있습니다. 값을 플롯해야하지만 배열의 길이가 너무 길어 프로세서 리소스를 소비합니다.어떻게 저해상도를 사용하여 큰 벡터를 플로팅 할 수 있습니까?

내 해상도는 600x600입니다.

큰 배열을 축소하여 400 개의 가능한 값 (테두리 200 자릿수)으로 어떻게 그릴 수 있습니까?

내가 자바를 사용하려고했지만, 내가 한 beging에 대해 아무 생각이 ... 안녕

나는 음모를 꾸미고있어 X, t (시간) ..

double BigArray = new double[640000]; 
    //... 
    filling the vector 
    //... 
    calculating resolution available (dots) 
    int n = 400; 
    //... 
    double LitArray = new double[n]; 
    double TimeArray = new double[n]; 
    //... 
    calculating new values for LitArray and TimeArray. 
    //... 

감사

+0

배열을 640k에서 400으로 축소하려는 경우 많은 정보와 플롯이 손실됩니다 대변자가 될 필요는 없지만 가장 대표적인 가치를 선택하는 지능형 알고리즘을 필요에 따라 설계하십시오. –

+0

참고 사항 [대답] (http://stackoverflow.com/a/8533194/230513). – trashgod

답변

0

당신은 어떤 종류의 줄거리가 필요한지 명시하지 않았습니다 ... 바? 선? 소수?

선형 줄거리이고 선형 적으로 증가하는 x- 시리즈에 대해 640000 개의 y- 값을 갖고 있다고 가정합니다.

일반적으로 수행 할 작업은 배열을 400 개의 버킷으로 분할하는 것입니다. 그래서 그것에 400 요소가있는 배열을 만드십시오. 버킷 당 1600 개의 값이 있으므로 처리 방법을 결정하면됩니다.

일반적인 문제는 각 버킷의 1600 개의 요소를 평균하여 각 픽셀 위치에 대해 단일 값을 만드는 것입니다. 그러나 정말로 빨라야하는 경우 대표 샘플 (예 : 균일 한 간격의 16 개 요소) 또는 각 버킷의 단일 값만 가져올 수 있습니다.

실제로 각 버킷의 최소값과 최대 값을 원할 수 있으며 각 픽셀 위치에서 하나의 라인을 다른 하나의 라인으로 그릴 수 있습니다. 그렇게하면 축소 된 그래프가 각 버킷의 범위를 계속 커버하고 잘못된 정보를 전달하지 않게됩니다 ...

+0

부탁드립니다. 새 값만 계산하고 싶습니다 ... 알고리즘이 필요합니다. –

+0

예, 새 값은 무엇입니까? 평균값, 최소값 및 최대 값, 대표 샘플, 단일 값 샘플 ...을 원하십니까? – paddy

관련 문제