【发布时间】:2014-02-22 04:53:40
【问题描述】:
这一天大部分时间都让我很烦..
假设我有以下向量:
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;
}
产生: 3 8
我可能在这里遗漏了一些非常愚蠢的东西,但是,我似乎无法弄清楚是什么。
我也尝试了一个变量subRow,它从 0 开始,每次递增 3,但这也不起作用。
【问题讨论】:
-
1x4被转换为2x2??? -
@herohuyongtao 是啊,这是错的吗?看起来不错。因为,4 个值可以表示为 2x2 列。我在这里可能有错误的术语。
-
那就学什么叫Transpose。
-
@herohuyongtao 对不起。那是我的错误。不过,您对我将如何解决我的问题有任何想法吗?
-
请改用
std::vector。这样会更清楚。