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

时间:2014-07-20 02:02:44

标签: c++ global armadillo

C ++新手在这里。有没有人知道如何在使用Armadillo时将矩阵定义为C ++中的全局变量?

代码如下:

#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。

谢谢!

1 个答案:

答案 0 :(得分:2)

使用全局变量几乎总是一个坏主意。但要回答你的问题,可以按如下方式完成全局矩阵变量:

#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;
  }