2012-07-26 74 views
0

我有一個大數組,有640000個元素類型double。 我需要繪製值,但數組的長度是巨大的,它消耗處理器資源。如何繪製使用低分辨率的大矢量?

我的屏幕分辨率只有600x600。

我怎樣才能縮小我的大數組,使其只有400個可能的值(200個邊界點)。

我試圖使用Java,但我不知道對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,您將失去大量信息和情節不會有代表性,只需少於您根據您的需求設計智能算法,即可選擇最具代表性的數值。 – 2012-07-26 02:12:12

+0

另請參閱此[答案](http://stackoverflow.com/a/8533194/230513)。 – trashgod 2012-07-26 05:12:25

回答

0

你還沒有說明你需要什麼樣的陰謀......酒吧?線?分散?

我認爲這是一個線圖,並且對於線性增加的x系列,您有640000個y值。

你通常會做的是將數組分成400個桶。因此,製作一個包含400個元素的數組。你每桶有1600個值,所以你只需要決定如何處理它們。

正常情況下,平均每個桶中的1600個元素,爲每個像素位置創建一個單一值。但是如果你需要非常快速,你可以從每個桶中取一個有代表性的樣本(比如16個元素均勻間隔)或甚至只是一個值。

您可能實際上需要每個存儲桶的最小值和最大值,並且您會在每個像素位置繪製一條線到另一條線。這樣,您的縮小圖將仍然覆蓋每個存儲桶的範圍,而不是傳達錯誤的信息......

+0

謝謝你問... 只有我想計算新的值... 我需要的算法.. – 2012-07-26 03:03:41

+0

是的,但哪些新值?你想要平均值,最小值和最大值,一個有代表性的樣本,一個單值樣本......? – paddy 2012-07-26 04:40:48