不能用犰狳乘矩阵
Can't multiply matrix with armadillo
本文关键字:不能 更新时间:2023-10-16
我不能用犰狳做矩阵乘法。我不知道是否还有其他不能使用的功能。到目前为止,我只使用向量和点积,没有问题。基本上:
#include <iostream>
#include <armadillo>
using namespace std;
using namespace arma;
int main(){
//this works
vec v = randu<vec>(10);
cout<<dot(v,v)<<endl;
int n =5;
//this doesn't work
mat M = randu<mat>(n,n); // program compiles but stops running when reaches here
cout<<M*M<<endl;
return 0;
}
我正在使用最新版本的代码块和犰狳。操作系统为windows 7。我在编译器链接器设置中包含了lapack和blas库,blas_win64_MT和lapack_win64_MT都在PATH中。我还在搜索目录中包含了de armadillo文件夹。在config.hpp(犰狳文件夹)中,#define ARMA_USE_LAPACK和#define ARMA_USE_BLAS没有注释。#define ARMA_USE_WRAPPER被注释。此外,我试图将-lapack -lblas添加到构建->项目选项->编译器->其他选项和构建->项目选项->链接器设置->其他选项,但我没有成功。当我试图用#define ARMA_USE_WRAPPER(未注释)向编译器添加-larmadillo时,也发生了同样的事情。我错过了什么?
您的程序当然非常好,因为Armadillo是一个精心设计和交付的库。
不正确的可能是您的安装或本地设置。只有你自己能弄明白。
在我的盒子上,在命令行上——我只需要链接到libarmadillo
,它本身有链接到lapack和blas:
edd@max:/tmp$ g++ -o arma5by5 arma5by5.cpp -larmadillo
edd@max:/tmp$ ./arma5by5
4.06892
1.5043 1.3996 0.6353 0.8246 1.4694
1.6543 1.6822 0.4338 0.6739 1.5782
1.3145 1.2759 0.3825 0.4967 1.2959
1.4222 1.4584 1.0028 1.3742 1.3593
1.6126 1.7886 0.4599 0.8348 1.5648
edd@max:/tmp$
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么我的for循环不能正确获取argv
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 为什么模板类中的对象不能返回值
- 为什么我不能在一个类的不同行中声明和定义成员变量?
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 数组长度,为什么从命令行获取时不能使用它?
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 为什么我不能将 rand() 与数组的大小一起使用?
- 为什么虚函数不能是静态的和全局的?
- 为什么我不能在 while 循环中创建线程?
- 为什么这个音频包络不能通过开关的情况?
- 不能将复制初始化与隐式转换的多个步骤一起使用