Это было раздражает меня в течение всего дня ..Среднее Среднее вектор из 1D вектор транспонировать
Предположим, что у меня есть следующий вектор:
v = [1, 2, 4, 9]
Я транспонировать это, так что вектор в колонки:
v = [1, 2
4, 9]
Я делаю это, используя следующий метод:
for(unsigned i=0; (i < cols); i++)
{
for(unsigned j=0; (j < 2); j++)
{
std::cout << vect[i*2+j] << " ";
}
std::cout << std::endl;
}
Но как бы я вычислил столбцы, во-первых? Моя цель состоит в том, чтобы достичь следующего:
(1 + 4)/2 = 2.5
(2 + 9)/2 = 5.5
Таким образом, результирующий вектор будет возвращать среднюю матрицу: x = [2.5, 5.5]
Я попытался следующие:
double summation = 0;
for(unsigned i=0; (i < cols); i++)
{
for(unsigned j=0; (j < size); j++)
{
summation += values[i*(i*j)+j];
}
std::cout << summation << std::endl;
}
Который производит:
У меня, вероятно, отсутствует что-то действительно глупое, но я не могу понять, что т.
Я также пытался иметь переменную subRow
, которая начинается с 0 и увеличивается каждый раз на 3, но это тоже не сработало.
'1x4' был перенесен на' 2x2' ??? – herohuyongtao
@herohuyongtao Да, это неправильно? Это выглядит правильно. Так как 4 значения могут быть представлены как 2x2 столбца. Возможно, у меня могут быть неправильные термины. – Phorce
Затем узнайте, что называется [* Transpose *] (http://en.wikipedia.org/wiki/Transpose). – herohuyongtao