Julia Tips (jp)
Juliaの覚え書き。主にLinux(bash)環境で気象解析を行うことを想定。 こちらに汎用的なJulia入門を書いています。
配列
生成・初期化
関数 | 説明 |
---|---|
Array{Type}(undef, dims...) | Type型でサイズがdims...の配列を返す |
配列の基本的な関数
関数 | 説明 |
---|---|
length(A) | Aに含まれる全要素数 |
dims(A) | Aに含まれる次元の数 |
size(A) | Aに含まれる各次元の要素数(タプル) |
size(A, n) | Aのn番目の次元に含まれる要素数 |
collect
配列として連番を作成する
collect(start:step:end) collect(start:end)
- stepを省略すると1になる。
関数
文字列処理
パッケージ
パッケージを追加
julia> ]
(@v1.4) pkg> add package-name
- パッケージモードから戻る場合はバックスペース
スクリプト内でパッケージを追加
using Pkg
Pkg.add( package-name )
パッケージを利用
using package-name
パッケージを利用(開発時)
dev package-name
描画
入出力
入出力(HDF5)
-
HDF5.jl
using HDF5
オープン
fid = h5open( filename, mode )
-
mode
- "r":読み込み限定
- "r+":読み書き。ファイルが存在する場合は中身を保持
- "cw":読み書き。ファイルが存在する場合は中身を保持、ファイルが存在しない場合は作成
- "w":読み書き、ファイルが存在する場合は上書き
- 以後、fid でファイルを操作する
データの読み込み
独自パッケージの作り方
参考
-
https://qiita.com/cometscome_phys/items/989389db3540ebd9e026
- 但し、最新版では以下を変更する必要あり:
- julia_version → julia
- license="..." → plugins 中に License(name="...")
- generate("...",t) → t("...")
- https://qiita.com/mametank/items/9fc1c9227303d6ca304b
- https://qiita.com/mametank/items/43330a9452f0039ca22d
-
ReviseパッケージをNFS上のファイルに対して使う場合の注意
- https://timholy.github.io/Revise.jl/stable/config/#Configuration-1
作成手順
-
PkgTemplatesでのひな形作成
(@v1.4) pkg> add PkgTemplates julia> using PkgTemplates t=Template(user="YOUR-USER-NAME",julia=v"0.1.0",authors=["Hoge Hoge"],dir="./",plugins=[License(name="MIT"),TravisCI(),Codecov(),Coveralls()]) t("YOUR-PKG-NAME")
- YOUR-PKG-NAME/src/YOUR-PKG-NAME.jlを編集
独自環境へのパッケージの追加
pkg> activate TestPackage pkg> add Hoge pkg> activate
githubへ公開したパッケージのadd
pkg> add https://github.com/hoge/Hoge.jl pkg> add https://github.com/hoge/Hoge.jl#v0.1.0 # ←tagを指定する場合
又は
Pkg.add(PackageSpec(url="https://github.com/hoge/Hoge.jl")) Pkg.add(PackageSpec(url="https://github.com/hoge/Hoge.jl",rev="v0.1.0"))
パッケージのバージョンを上げる
-
uuid生成
pkg> add UUIDs julia> using UUIDs julia> uuid4()
-
Project.tomlを編集
- uuid, version を修正
-
コミット
- git push
- git tag v0.1.2
- git push origin v0.1.2
-
パッケージをrm & add
pkg> rm Hoge pkg> add https://github.com/hoge/Hoge.jl#v0.1.2