[英]How to convert multidimensional array to jagged? (C#)
對於一個項目,我有一個包含雙精度值的多維數組(double [,])。 由於我使用了來自Accord框架的方法,該方法希望接收鋸齒狀的double數組(double [] []),因此我需要將其中一個轉換為另一個。 但是,使用下面的代碼,我注意到我從未到達輸入[k] =行; 聲明。
double[][] inputs = new double[165][];
// Loop through # of rows
for (int k = 0; k < pcaComponents.GetLength(1); k++)
{
double[] row = new double[20];
// Loop through # of columns
for (int l = 0; l < pcaComponents.GetLength(0); l++)
{
row[k] = pcaComponents[k, l];
}
inputs[k] = row;
}
pcaComponents類型為double [,],並從另一段代碼傳遞過來。 通過使用getLength屬性,我可以看到傳遞1時的結果是165,即行數,而傳遞0則可以看到結果是20,即列數。 然后,我嘗試使用多維數組中的值為鋸齒狀數組創建新行。 它在第二個循環中循環了20次,但似乎沒有到達輸入[k] =行; 語句,並且不會繼續第一個循環,其中pcaComponents.GetLength(1)等於165。
我認為您必須更換線
row[k] = pcaComponents[k, l];
由那個
row[l] = pcaComponents[k, l];
您內部循環的變量不是l
也許您應該使用GetLength來調整數組大小:
double[] row = new double[pcaComponents.GetLength(0)];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.