如何从终端运行Julia脚本和功能?

时间:2016-02-03 15:47:15

标签: terminal julia

我正在学习Julia语言,并按照一些教程来测试Julia中的OLS(普通最小二乘)估计。首先,我需要模拟因变量(" Y"),自变量(" X"),误差项(epsilon)和参数的数据集。该脚本如下:

# ols_simulate :generate necessary data
using Distributions
N=100000
K=3
genX = MvNormal(eye(K))
X = rand(genX,N)
X = X'
X_noconstant = X
constant = ones(N)
X = [constant X]

genEpsilon = Normal(0, 1)
epsilon    = rand(genEpsilon,N)
trueParams = [0.1,0.5,-0.3,0.]
Y = X*trueParams + epsilon 

然后我定义了一个OLS函数

function OLSestimator(y,x)
    estimate = inv(x'*x)*(x'*y)
    return estimate
end

我计划做的是首先使用命令来模拟来自终端的数据:

ols_simulate

并希望此步骤正确生成并存储数据,然后我可以调用olsestimator。但在尝试此操作后,当我在Julia REPL中输入mean(Y)时,它会给我一个错误消息,如

Error: UnderdefvarError: Y not defined

似乎数据存储不正确。更一般地说,如果我有多个脚本(脚本和函数),我如何使用终端中其他人生成的数据?

谢谢。

2 个答案:

答案 0 :(得分:4)

每次运行Julia REPL(Julia“命令行”)时,它都会以新的内存工作区开始。因此,要定义变量然后使用它们,您应该运行一次解释器。

如果我理解正确,你有多个脚本可以完成部分计算。要在REPL中运行脚本并使用仍定义的所有全局变量保留它,可以使用

include("scriptname.jl")

(将scriptname更改为适当的.jl文件名。)

在这种情况下,工作流程可能如下所示:

include("ols_simulate.jl")
estimate = OLSestimator(Y,X)
mean(Y)

一般情况下,最好留在REPL中,除非你想清除所有内容并重新开始,然后退出并重新启动即可。

答案 1 :(得分:2)

您需要将脚本保存在单独的文件中,然后将其加载到Julia中。假设你已经用名字" ols_simulate.jl"保存了它。在目录" dir1"中,然后导航到终端中的该目录,启动Julia(您可能希望看到this)。进入朱莉娅之后,你必须加载" ols_simulate.jl"然后你可以计算False的平均值并做任何你想做的事情:

Y

对于我认为你正在做的事情,我认为你可以使用像Jupyter这样的笔记本界面找到有用的东西。