引言
我正在使用itpp库4.3.1版本来计算向量的偏度。库可以从这里下载。
库可以按以下方式安装:
mkdir build;
cd build;
cmake ..
make
sudo make install源代码
我正在使用下面的源代码来计算偏度。
#include <itpp/stat/misc_stat.h>
using namespace itpp;
int main(int argc, char* argv[])
{
vector<double> x{2,3,4,5,6};
double skew = skewness (x);
return 0;
}图书馆中的偏度函数
double itpp::skewness (const vec &x)
Calculate the skewness excess of the input vector x. 错误
error: invalid initialization of reference of type ‘const vec& {aka const itpp::Vec<double>&}’ from expression of type ‘std::vector<double>’
double skew = skewness (x);
^
In file included from main.cpp:3:0:
/usr/local/include/itpp/stat/misc_stat.h:336:20: note: in passing argument 1 of ‘double itpp::skewness(const vec&)’
ITPP_EXPORT double skewness(const vec &x);我不明白为什么我会犯这个错误。
谢谢。
发布于 2016-01-05 16:17:56
skewness()似乎接受一个const itpp::Vec<double>&类型的参数,但是您给它一个std::vector<double>,它不能隐式地转换为前一个类型。您需要将x声明为itpp::Vec<double>类型,或者您可以显式地将x转换为该类型的对象,条件是itpp允许您这样做(我不知道库)。
发布于 2016-01-05 16:17:58
const vec&不是const std::vector&,所以参数不匹配。
https://stackoverflow.com/questions/34616226
复制相似问题