【发布时间】:2017-12-06 12:47:07
【问题描述】:
我有多个矩阵,我想将它们存储在某个 c/c++ 对象中。我对 c/c++ 还是很陌生,但有人告诉我这是这样做的一种方法。
- 创建地图
- 在地图的键处存储矩阵
这几乎是working MWE(如果它有效,我不需要问这个问题):
#include <map>
#include <stdio.h>
#include <stdio.h>
#include <gsl/gsl_matrix.h>
int
main (void)
{
int i, j;
std::map<int,double> test;
gsl_matrix * m = gsl_matrix_alloc (10, 3);
for (i = 0; i < 10; i++)
for (j = 0; j < 3; j++)
gsl_matrix_set (m, i, j, 0.23 + 100*i + j);
// store in map
test[1] = m;
gsl_matrix_free (m);
return 0;
}
这一行让我变得不确定(并引发了错误):
std::map<int,double> test;
因为gsl_matrix 是一个结构,我相信这与我想做的事情不相容。错误如下:
cannot convert gsl_matrix* to std::map<int, double>::mapped_type {aka double} in assignment
确切地说,我想做的类似于 python,我们可以像这样将对象存储到字典中:
import numpy as np
test = {}
test['a'] = np.array([[1,2],[2,3]])
test['b'] = np.array([[1,2],[3,3]])
test['c'] = np.array([[1,3],[5,3]])
test['d'] = np.array([[1,5],[6,3]])
.
.
.
如何使用gsl 进行最佳复制?
【问题讨论】:
标签: python c++ dictionary matrix gsl