2

Julia と DataArray パッケージを試しています。変数 'n' に格納された整数で指定されたサイズのデータ​​配列をゼロで初期化したいと考えています。ただし、「エラー: n が定義されていません」というエラー メッセージが表示されます (明らかにそのように見えますが)。

以下は小さな例です。

using DataArrays
n = 8
@data(zeros(Float64,n))

私にとっては、上記のエラーメッセージが表示されます。(ご了承ください

using DataArrays
@data(zeros(Float64,8))

動作します。)

何か案は?

4

1 に答える 1

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、多くのマクロにはこの問題やその他の問題があります。一般的に、マクロは一種の疑わしいものです。

于 2013-12-26T22:26:09.343 に答える