用Armadillo在c++中定义全局矩阵变量

define global matrix variable in c++ with Armadillo

本文关键字:全局 变量 定义 Armadillo c++      更新时间:2023-10-16

c++新手。有人知道如何定义一个矩阵作为一个全局变量在c++中使用Armadillo?

代码看起来像:

#include <iostream>
#include "armadillo"
using namespace std;
using namespace arma;
#define mat *g    
int main(){
    extern mat *g;
    mat  g << 1.0 << 2.0 << endr
           << 3.0 << 4.0 << endr;
    return;
}

一个相关的问题是什么是mat变量的类型,当我把它传递给一个函数?应该是somefunction(mat *g)吗?

我在Windows 7电脑上使用Microsoft Visual Studio 2012。

谢谢!

使用全局变量几乎总是一个坏主意。但是为了回答你的问题,一个全局矩阵变量可以这样做:

#include <iostream>
#include <armadillo>
using namespace std;
using namespace arma;
mat global_matrix;
int main(int argc, char** argv)
  {
  global_matrix << 1.0 << 2.0 << endr
                << 3.0 << 4.0 << endr;
  global_matrix.print("global_matrix:");
  return 0;
  }