我的名字是Ulrich,我刚刚开始写我的学士论文,其中包括我写一个程序的部分,需要一个奇异的价值分解。 首先,我需要说,英语是我的第二语言,我对编程完全陌生。所以请用简单的词语帮助我;)
经过一番研究,我发现Armadillo提供了一个很好的SVD()函数,它基于Lapack库,所以我下载它们并试图正确安装它们,我想我在那部分失败了:< / p>
所以这是我编写的代码的相关部分:
#include <iostream>
#include <vector>
#include <random>
#include <time.h>
#include <math.h>
#include <fstream>
#include <cmath>
#include <sstream>
#include <armadillo>
using namespace std;
using namespace arma;
mat A(N,2*N+1, fill::zeros); //the zeroess will be replaced later, don't worry i know a SVD of zeroes is stupid ;)
mat U;
mat V;
vec S=svd(A);
编译错误是:
未定义参考&#39; dgesdd _&#39;
我用的是什么:
我做了什么: 我在编码器的设置中将编译器与包含来自Armadillo的许多.header文件的文件夹链接起来(... / include / armadillo_bits /) 并且我以相同的方式链接具有4个.header文件的Lapack文件夹(... / lapacke / include /) 此外,犰狳的自述文件说我将从一个名为config.hpp的文件中注释掉某些行 我查看了整个文件,但我认为我不必取消注释任何内容。但为了防止你需要看到它,我可以为你上传文件。
PS:在寻找解决方案的过程中,我遇到了一个问题,看起来与我的问题非常相似,似乎很容易修复,但不幸的是我对此一无所知: Question from stackoverflow 我希望你能帮我这个, 乌利