小编Vok*_*ram的帖子

R中的全局变量和局部变量

我是R的新手,我对R中局部变量和全局变量的使用感到困惑.

我在互联网上阅读了一些帖子,说如果我使用=或者<-我将在当前环境中分配变量,并且<<-我可以在函数内部访问全局变量.

但是,正如我记得在C++中,只要你在括号内声明一个变量就会出现局部变量{},所以我想知道这对于R来说是否相同?或者仅仅是R中的函数我们有局部变量的概念.

我做了一个小实验,这似乎表明只有括号是不够的,我有什么不对吗?

{
   x=matrix(1:10,2,5)
}
print(x[2,2])
[1] 4
Run Code Online (Sandbox Code Playgroud)

r

120
推荐指数
3
解决办法
14万
查看次数

Matlab:是否有可能在初始和终端条件的混合下用数字方式解决一个颂歌系统?

我正在尝试用来ode45解决ODE系统:

[X,Y]=  ode45(@sys,[0, T],y0);
Run Code Online (Sandbox Code Playgroud)

哪里,

function dy = sys(t,y)

        dy(1) = f_1(y)
        dy(2) = f_2(y)
        dy(3) = f_3(y)
end
Run Code Online (Sandbox Code Playgroud)

问题是该函数ode45需要y0是初始值[y_1(0), y_2(0), y_3(0)],而在我的系统中,我只有值[y_2(0), y_3(0), y_3(T)]可用.

从数学上讲,这组初始/终端条件应该足以确定系统,但是有什么方法可以用ode45MATLAB中的任何其他函数来处理它?

谢谢!

matlab numerical-methods ode

7
推荐指数
1
解决办法
1731
查看次数

内部编译器错误消息的含义是什么,我该怎么办?

我正在尝试使用pgCC编译器编译我的C++程序,该程序使用MPICH和NAG C库(我使用NAG生成随机数).

但是,编译器给了我以下错误消息:

PGCC-S-0000-Internal compiler error. linearize: bad ili #:       0 (mpisim.C: 225)
PGCC-S-0000-Internal compiler error. gen_aili: unrec. ili opcode:       0 (mpisim.C: 225)
PGCC-S-0000-Internal compiler error. linearize: bad ili #:       0 (mpisim.C: 266)
PGCC-S-0000-Internal compiler error. gen_aili: unrec. ili opcode:       0 (mpisim.C: 266)
PGCC/x86 Linux 12.4-0: compilation completed with severe errors
Run Code Online (Sandbox Code Playgroud)

我不知道这些消息是指什么.有人可以向我解释他们的意思吗?

有没有办法让我弄清楚问题线的位置?255in 是否(mpisim.C: 225)表示我的代码中的行号?

c++ compiler-errors compilation internal-compiler-error

3
推荐指数
1
解决办法
1万
查看次数

如何安装Openmpi for xcode?

我正在尝试在xcode 4中运行一些MPI程序.我通过键入安装了来自MacPort的openmpi sudo port install openmpi并且安装正常完成.然后我将opt/local/include/openmpi添加到我的用户头搜索路径,将"libmpi.dylib"和"libmpi_cxx.dylib"拖到我的项目中.

但是当我尝试运行该程序时,我收到以下错误消息:

Undefined symbols for architecture x86_64:
  "_MPI_Comm_accept", referenced from:
      MPI::Intracomm::Accept(char const*, MPI::Info const&, int) const in main.o
  "_MPI_Comm_connect", referenced from:
      MPI::Intracomm::Connect(char const*, MPI::Info const&, int) const in main.o
  "_MPI_Comm_disconnect", referenced from:
      MPI::Comm::Disconnect() in main.o
  "_MPI_Comm_get_errhandler", referenced from:
      MPI::Comm::Get_errhandler() const in main.o
  "_MPI_Comm_set_errhandler", referenced from:
      MPI::Comm::Set_errhandler(MPI::Errhandler const&) const in main.o
  "_MPI_Comm_spawn", referenced from:
      MPI::Intracomm::Spawn(char const*, char const**, int, MPI::Info const&, int) const in main.o
      MPI::Intracomm::Spawn(char const*, char const**, int, MPI::Info const&, int, int*) const …
Run Code Online (Sandbox Code Playgroud)

c++ xcode linker mpi

3
推荐指数
2
解决办法
5726
查看次数

Matlab:变量自动设置为一次声明为全局的值?

我在Matlab中遇到一个非常奇怪的全局变量问题.

通常,当您在为其赋值之前将变量声明为全局变量时,它将保留为空变量.我有一个变量R,我想声明为全局变量.但经过I型clearglobal R,在变量列表中R已被设置成1*18阵列,一些零的填充于它的其他号码.

我确实有一些共享全局变量的其他函数和脚本R,但我确保在输入后没有调用任何脚本或函数clear,并且当我global R从提示符输入时变量列表已经为空.

在此输入图像描述

但问题仍然存在.我想我必须对有关全局变量的规则有一些严重的误解.任何人都可以解释为什么会这样吗?

提前致谢.

matlab

2
推荐指数
1
解决办法
1482
查看次数