Julia中的数据数组

Julia中的数据数组,julia,Julia,我正在试用Julia和DataArray软件包。我想用零初始化一个数据数组,该数组的大小由存储在变量“n”中的整数给定。但是,我收到一条错误消息“error:n未定义”(尽管它看起来很清楚) 以下是一个小例子: using DataArrays n = 8 @data(zeros(Float64,n)) 对我来说,这会产生上述错误消息。(注意 using DataArrays @data(zeros(Float64,8)) 确实有效。) 有什么想法吗 n = 8 float64(DataAr

我正在试用Julia和DataArray软件包。我想用零初始化一个数据数组,该数组的大小由存储在变量“n”中的整数给定。但是,我收到一条错误消息“error:n未定义”(尽管它看起来很清楚)

以下是一个小例子:

using DataArrays
n = 8
@data(zeros(Float64,n))
对我来说,这会产生上述错误消息。(注意

using DataArrays
@data(zeros(Float64,8))
确实有效。)

有什么想法吗

n = 8
float64(DataArray(zeros(Float64 ,n)))
会带你去你要去的地方。
@data
宏有点糟糕,我能想到的唯一用途是在编写测试时,如果你想说

x = @data([1,2,3,NA])
通常情况下,列表构造器会对你施加压力。但是,这也起作用:

x = float64(DataArray(Any[1,2,3,NA]))

所以,我不知道。远离那个
@data
宏。宏通常很难看到本地变量或函数以及来自其他模块的变量。这显然是一个可以解决的问题,因为
@show
大部分都可以工作,但许多宏都有这个问题和其他问题。宏通常是可疑的。

我同意Michael的观点,即
@data
宏需要大量工作。但我也不会使用他提出的解决方案,即创建一个
DataArray{Any}
,这几乎肯定不是您想要的。最简单的解决方案是做
@data(零($n))
;我没有编程背景(到目前为止只在R上做过大量的工作),所以我一直没有注意到宏的问题。@JohnMylesWhite,这就是为什么我一直不得不
转换
我的
数据数组
s的原因。修正:
float64(DataArray(Any[1,2,NA]))
@MichaelFox:你不应该这么做。
@data
宏只是有缺陷。FWIW,它比以前被它取代的buggy解决方案要好。