我在C中读过一些关于动态增长数组的帖子,但我看不出如何创建2D增长数组(如在MATLAB中).
我有一个函数为一些图像处理构造一个数组,但我不知道这个数组的大小(cols和rows).我该如何创建呢?
我读了一些关于malloc和realloc的内容.这些功能是可移植的或对此问题有用.
编辑:已解决,使用Armadillo库,一个C++线性代数库.
最简单的是用指针
int nrows = 10;
int ncols = 5;
double* matrix = new double[mrows*ncols];
Run Code Online (Sandbox Code Playgroud)
然后您可以像访问 2D 数组一样访问它。
所以如果你愿意matrix[row][col],你会做
int offset = row*ncols+col;
double value = matrix[offset];
Run Code Online (Sandbox Code Playgroud)
另外,如果你想要像 C++ 中的矩阵一样使用 Matlab,请查看Armadillo
| 归档时间: |
|
| 查看次数: |
1211 次 |
| 最近记录: |