Я довольно новичок в языке программирования 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)];
}
}