divrot in an infinitesimal box

Julia, python, algorithmのメモです

Julia - install, package, and emacs

Juliaを始めることにした(=つまりJuliaが使われることに賭けることにした) -

 

Macにインストール

Mac版の単体Julia 0.4.2をインストール。

これまでのpythonの仕事環境としては、ターミナル上でemacs開いて書いて、実行するという古いスタイルなので、慣れ親しんだこのスタイル+Jupyterで仕様する。

bin本体は/Applications/Julia-0.4.2.app/Contents/Resources/julia/bin/julia

PATHに追加する。

~/juliatest> julia test.jl

これで動くようになった。

ソース頭に

#!/Applications/Julia-0.4.2.app/Contents/Resources/julia/bin/julia

とかけば、そのまま実行可能になる。


 

emacs環境をいれる

Juliaのemacs環境はjulia-mode.elとESSがあるみたいだ。ESSはうまくいかなかったので、前者をいれる。julia-mode.elgithubからgetして、.emacs.d/site-lisp/にいれて、.emacsに以下を書く

(load “/Users/name/.emacs.d/site-lisp/julia-mode.el” nil t)

(autoload ‘julia-mode “julia-mode” “Emacs mode for Julia” t)
(add-to-list 'auto-mode-alist ’(“\.jl\’” . julia-mode))

これでつかえるようになった。

 


Package管理

Packageは専用マネージャーみたいのがある

julia> Pkg.init()

こんな感じでaddするようだ

julia> Pkg.add(“Gadfly”)

消す時は

julia> Pkg.rm(“Gadfly”)

何がinstallされているか確認する時は

julia> Pkg.status()

これらは.julia内にどんどんinstallされていく

 

はまった幾つか

複素行列の転置(transpose)。Juliaでは行列の転置を' (プライム)で省略してかけるが、複素行列の場合、単なる転置ではなく、複素共役転置になる。

complex array

 

Juliaではindexは1から始まる。pythonとか多くの言語では0から始まるので、importするとき面倒くさい。離散フーリエ変換関係でよくでる配列の変換はたとえば以下。

 

0 based and 1 based indexings