Умножить 2-D массив - PullRequest
       12

Умножить 2-D массив

1 голос
/ 16 апреля 2020

Я довольно новичок в языке программирования C ++. В настоящее время я пытаюсь сделать sh короткий * ввод от MATLAB, создав его транспонирование и умножение. У меня проблемы, когда я пытаюсь размножаться. Я получаю h_raw из MATLAB и делаю некоторые вычисления, чтобы получить sh_data. Это выглядит правильно. Затем я создаю транспонирование DST, что также правильно. Поиск ковариационной матрицы доставляет мне неприятности. Эта ковариационная матрица должна быть MATALB эквивалентной cov_matrix = sh_data * sh_data '; Любая помощь приветствуется!

for (int numEl = 0; numEl < elements; numEl++) {
    int shift_idx = tof[1 + (1 * pix_x * numEl)];
    for (int sdex = 0; sdex < shift_idx; sdex++) {
            for (int p = 0; p < nrows; p++) {
                sh_data[p + (numEl*nrows)] = h_raw[(p + sdex) + (numEl*nrows)];
            }

    }
}

// finding the transpose
for (int n = 0; n < nrows*ncols; n++) {
    int i = n / ncols;
    int j = n % ncols;
    dst[n] = sh_data[nrows*j + i];
}

// calculating the covariance matrix

for (int nel = 0; nel < elements; nel++) {
    for (int k = 0; k < nrows; k++) {
            cov_matrix[(nel*elements)+nel] += dst[(k*elements)+nel] * sh_data[k+(nel*nrows)];

    }
}
...