我有一個雙精度的圖像像素數組,其大小取決於圖像大小。假設圖像是1000x1334,我將擁有一個carryOutput [1000] [1334]雙數組。在JAVA中將大數組分解爲更小的數組
我需要在下列條件下將數組拆分成更小的double [9] [9]數組。我爲它創建了一個for循環,但卡住了一半。
//smaller array z
double[][] z = new double[9][9];
for(int length = 0; length < carryOutput.length; length+=8)
{
for(int width = 0; width < carryOutput[0].length; width+=8)
{
... code to fill in z array here ....
}
}
基本上,我希望有多個更小的數組是基於for循環中條件的carryOutput的子數組。
EG: length = 0, width = 0 --> z[0][0] until z[8][8] = carryOutput[0][0] until carryOutput [8][8]
length = 0, width = 8 --> z[0][0] until z[8][8] = carryOutput[0][9] until carryOutput [8][17]
....
這裏的問題是有一種方法,我可以避免闖入許多數組。你看,如果它是一張1000x1000的圖片,那麼會有大約100多個更小的數組。
我有一個運行的MATLAB代碼,實際上這個工作。我試圖將其翻譯成JAVA。
附件爲MATLAB代碼的部分:
e = size(carryOutput);
for length=1:8:e(1)-8;
for wide=1:8:e(2)-8;
z=coef(length:length+8,wide:wide+8);
...
row = 1;
col = 2;
if (z(row,col) < z(row,col+1))
smaller = smaller+1;
if z(row,col+2) > z(row,col+1)
smaller_plus = smaller_plus+1;
else if z(row,col+2) < z(row,col+1)
smaller_minus = smaller_minus +1;
else if z(row,col+2) == z(row,col+1)
smaller_static = smaller_static +1;
end;end;end;
....
我想類似MATLAB輸出的東西,因爲我不得不行和列在後面的代碼比較每個小陣的原因。編寫一個代碼來比較100個不同的陣列會很麻煩。
任何人都可以突出顯示我的代碼應該如何解決這個問題。
...「*爲它創建了一個for循環但卡住了*」...「*我想要多個更小的數組,它是carryOutput的子數組*」*有沒有一種方法可以避免闖入許多數組*「...」*運行MATLAB代碼...試圖將其轉換爲JAVA *「很難說出你究竟在問什麼。 – DoubleDouble 2014-09-30 17:29:17