login

Julia Tips (jp)

Top / Julia / tips

Japanese / English

Juliaの覚え書き。主にLinux(bash)環境で気象解析を行うことを想定。
こちらに汎用的なJulia入門を書いています。

配列

生成・初期化

関数 説明
Array{Type}(undef, dims...) Type型でサイズがdims...の配列を返す

配列の基本的な関数

関数 説明
length(A) Aに含まれる全要素数
dims(A) Aに含まれる次元の数
size(A) Aに含まれる各次元の要素数(タプル)
size(A, n) An番目の次元に含まれる要素数

collect

配列として連番を作成する

collect(start:step:end)
collect(start:end)
  • stepを省略すると1になる。

関数

ブロードキャスト

  • ループを書くことなく、配列の要素それぞれに対して関数の処理を行うことができる。

文字列処理

文字列を分割

split( string, separator )

パッケージ

パッケージを追加

julia> ]
(@v1.4) pkg> add package-name
  • パッケージモードから戻る場合はバックスペース

スクリプト内でパッケージを追加

using Pkg
Pkg.add( package-name )

パッケージを利用

using package-name

パッケージを利用(開発時)

dev package-name

描画

Plots

default()

デフォルトの挙動を指定。

REPL の場合、

default( show = true )

とすると即座に表示されるっぽい。

入出力

Tips: 既存のファイルが存在する場合に削除

julia> isfile( filename ) && rm( filename )

入出力(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