我正在尝试使用Julia和DataArray包。我想用零初始化一个由存储在变量'n'中的整数给出的大小的数据数组。但是,我收到一条错误消息“ERROR:n not defined”(即使它看起来很明显)。
以下是一个小例子:
using DataArrays
n = 8
@data(zeros(Float64,n))
对我来说产生上述错误信息。 (注意
using DataArrays
@data(zeros(Float64,8))
确实有效。)
有什么想法吗?
答案 0 :(得分:1)
n = 8
float64(DataArray(zeros(Float64 ,n)))
会让你到达目的地。 @data
宏很糟糕,我能想到的唯一用途就是在编写测试时,如果你想说点什么
x = @data([1,2,3,NA])
通常,列表构造函数会废弃你。但是这也有效:
x = float64(DataArray(Any[1,2,3,NA]))
所以,我不知道。远离那个@data
宏。宏通常很难从其他模块中看到本地变量或函数和变量。这个问题可以清楚地解决,因为@show
主要起作用,但许多宏都有这个问题和其他问题。宏一般都是可疑的。