【发布时间】:2012-10-30 07:02:45
【问题描述】:
在matlab中我们可以使用matlab操作符如下:
M=[1 2 3 4, 5 6 7 8, 9 10 11 12]
M[:,1] = M[:,2] + M[:,3]
对矩阵的所有行应用相同的操作
我想知道我们是否可以应用相同的操作将值设置为std::vector 中的一系列值,就像使用冒号(:)matlab 的运算符一样。实际上,我使用向量来存储矩阵值。
vector<int> M;
提前致谢。
【问题讨论】:
-
C++ 对此没有标准操作。您必须自己编程或使用第 3 方矩阵库
-
@JoachimPileborg 有趣的功能,我不知道,但这不是我想要的;谢谢。
-
@tuxworker:你如何想象一个没有元素循环的矩阵操作?
-
SSE SIMD 矢量化之类的东西?
-
@tuxworker,基本上你可以一次操作 4 个
floats 或 2 个doubles(Matlab 也依赖于此)。虽然,因为它是非常低级的代码来处理,我建议使用 eigen(见答案)或其他库。