擅长:python、mysql、java
<p>由于armadillo使用数据的列主排序(与numpy不同,numpy依赖于行主序),所以简单地将矩阵放入一个具有1个切片的立方体中并对其进行整形将产生不同的结果(下面的矩阵<code>B</code>)。另一种方法是手动构造切片:</p>
<pre><code>#include <iostream>
#include <armadillo>
int main(){
const arma::uword N = 2;
const arma::uword num_rows = 4;
const arma::uword num_cols = 3;
arma::mat A(num_rows, num_cols, arma::fill::randu);
std::cout << A;
arma::cube B(num_rows, num_cols, 1);
B.slice(0) = A;
B.reshape(num_rows/N, num_cols, N);
std::cout << B;
arma::cube C(num_rows/N, num_cols, N);
for(arma::uword i = 0; i < N; ++i){
C.slice(i) = A.rows(i*N, (i+1)*N-1);
}
std::cout << C;
return 0;
}
</code></pre>