Julia言語 ざっくりメモ

まだわからないことが多い.

基本

起動とか終了とか

Ubuntu ではインストール後に terminal で julia と入力すれば始まる.

$ julia
              _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: https://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.6.2 (2017-12-13 18:08 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-pc-linux-gnu

julia>

"?"を入力すれば上の "julia>" の欄が

 help?>

に自動で変わり,コマンド名を入力すれば説明書きが出力される.
終了は Ctrl-D か exit() を入力する.

コメント

# この行はコメントです (1行)
#=
  "#= *** =#"で囲めば
  複数行コメントアウトできる
=#


パッケージの追加など

v0.7.0 未満のバージョンでは,Pkg.add("hoge") でパッケージをインストールする.

Pkg.add("PyPlot")

確認やアップデートは下記のように実行する.

Pkg.status()
Pkg.update()

v0.7.0 以降は,Pkg を使うときは事前に

using Pkg

をすることが必須になった.v0.7.0 では警告を出してくれるが,v1.0.0 ではこれがないと

julia> Pkg.add("IJulia")
ERROR: UndefVarError: Pkg not defined

となりエラーが出る.

また,v1.0.0 以降では,REPL の先頭で "]" を入力すると Pkg 専用の状態になり,

(v1.0) pkg> add GMT

のようにしても追加ができる.

図の描き方が多様

上記のように Pkg.add("Plots") でインストールしたら,

using Plots

でこのパッケージが利用できるようになる.他にも

using Gadfly
using PyPlot

のような可視化ツールが見られる. Plots は Plots 自体に図を描く機能はなく,入力に応じて描画機能を持ったバックエンドが働く.
バックエンドは

gr() # Plots.gr() に同じ
pyplot()

のようにして切り替えられる.
複数のパッケージを using して関数名が競合する場合や,パッケージ名を明示したい場合は

using Plots: Plots
Plots.plot() # この場合 plot() は not defined

とする.import Plots でも良いけど,using で統一した方が良いと思う.

配列の要素は1から

0からではない.Fortran や MATLAB と同じ.ただし,配列を示す括弧は()ではなくて[].

セミコロン ; の役割

これも MATLAB と同じ.式の最後に;をつければ結果が出力されない.

julia> A = 1.
1.0
julia> A = 1.;

ただし,

julia> include("filename.jl");

のように,include でコンソール,REPL で直接実行しない場合は,ファイル内のセミコロンはあってもなくても関係ない.

1行の中で

julia> A = 1., B = 2.,
ERROR: syntax: invalid assignment location "1"

のようにはできず,

julia> A, B = 1., 2.;

はOK.このへんはPythonと似ている.

同様のことをMATLAB的にやるとすれば下記の通り.

julia> A = 1.; B = 2.;

これは,; 自体に特別な意味があるわけではなく,単にステートメントの区切りで ; で終われば最後のステートメントが空になる,という意味?

型の確認

typeof(A) か isa(A,型の名前) でわかる.

julia> typeof(A)
Float64
julia> isa(A,Int64)
false
julia> isa(A,Float64)
true
julia> A = 1; isa(A,Int64) 
true


変数が定義されているか確認

isdefined は,v0.7.0以降引数が2つ必要になった.
単に local variable として存在するかどうかは,@isdefined の方が良いらしい.

@isdefined var_name
isdefined(Main, :var_name)

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2019-10-30 (Wed) 08:33:30 (1639d)