使用犰狳线性代数包存储矩阵需要多少内存?

How much memory is required to store a matrix using the armadillo linear algebra package?

我分别对大小为 100*100 和 1*1 的矩阵使用 sizeOf 运算符得到相同的值。

mat A(100,100),B(1,1);
A.randu();
B.randu();
cout<<"Memory requested for A:"<<sizeOf(A);
cout<<"Memory requested for B:"<<sizeOf(B);

输出:
A:160
请求的内存 B:160

请求的内存

那么我如何获得每个变量 A、B 的代码所需的实际内存。

mat 类型存储双精度数组,因此要获取数组的字节大小:

A.n_elem * sizeof(double)

A使用的内存总量为sizeof(A) + (A.n_elem * sizeof(double))