Для проекта у меня есть многомерный массив (double[,]), содержащий двойные значения. Поскольку я использую метод из структуры Accord, который ожидает получить зубчатый массив двойных значений (double[][]), мне нужно преобразовать одно в другое. Однако, используя приведенный ниже код, я замечаю, что никогда не достигаю inputs[k] = row; утверждение.
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, что является количеством столбцов. Затем я пытаюсь создать новую строку для зубчатого массива со значениями из многомерного массива. Он проходит 2-й цикл 20 раз, но, похоже, не достигает inputs[k] = row; оператор и не продолжает 1-й цикл, где pcaComponents.GetLength(1) равно 165.
pcaComponents[k, l]
означает, чтоk
должно быть связано сpcaComponents.GetLength(0)
- person Henk Holterman   schedule 21.04.2015