2016-12-15 9 views
2

JuliaのStrPackモジュールを使用して、ファイルからバイナリデータを読み込みます。ジュリアの複合型のパラメトリック配列の長さ

100個の値のリスト、struct次利用読むには:

@struct type MyType 
    values::Array{Float64}[100] 
end 

をし、それが正常に動作します。

しかし、配列の長さをパラメータ化する方法があるかどうかは疑問でした。 Juliaのパラメトリック型では、内部型のみを変更できます(つまり、上記の例では、Float64を別の型に置き換えることができます)。

また、私はこれを試してみました:

length=100 
@struct type MyType 
    values::Array{Float64}[length] 
end 

このエラーを与える:

ERROR: TypeError: Test: in type definition, expected Type{T}, got Array{Float64,1} 

任意のアイデア?

+0

この時点では、配列の次元はパラメータ化されていますが、配列の長さはパラメータ化されていません。固定サイズ配列の特殊な配列型に関する議論がいくつかありますが、AFAIKは誰もまだその作業を進めていません。ディスカッションはここから始まります(https://github.com/JuliaLang/julia/issues/5857) –

答えて

2

StrPackに固有の質問です。 Juliaでは、配列の型は要素の型とそのランクに制限されています。 StrPackパッケージでは、@structマクロを使用してArray宣言の後に[number]を検索し、それに対して適切なbitsタイプを手動で作成します。

@struct type MyType{n} 
    values::Array{Float64}[n] 
end 

残念ながら、StrPackのマクロ@structは、単に型パラメータをサポートしていない、そしてそれが適切タイプに名前を付けないであろうと、それはMyType{n}に窒息されます:何行うにをしようとしていることは、このようなものです。

関連する問題