關於網路那些事...

網路行銷,SEO,網路趨勢,創業文章,網頁設計,生活時事

Julia language 入門

| Comments

Julia 是一種科學計算語言,具有以下特性:

  • 免費且開源 (MIT licensed)
  • 使用者可定義types的方式,增加效率
  • 不須為了增加效能而特別編譯程式碼,直接寫效能就已經很快
  • 適用於平行運算及分布試運算
  • 輕量綠色版
  • 強大的types系統
  • 可以優雅的對數字和其他類型進行轉換和拓展
  • 支援Unicode(當然包含UTF8)
  • 可以直接呼叫C的functions(不須額外加載或特定API)
  • 強大的類shell功能,用於管理其他進程
  • Lisp-like macros and other metaprogramming facilities

以下是學習過程的一些紀錄:

安裝

前往官網下載安裝檔

我使用的是windows 10環境,下載Windows Self-Extracting Archive (.exe) 64-bit

下載後直接點擊安裝

接著完成後,檔案會位在 C:\Users<Username>\AppData\Local\Julia-0.5.0
檔案列表如下:

設定windows環境變數

在windows環境變數PATH 加入 Julia路徑:
C:\Users<username>\AppData\Local\Julia-0.5.0\bin

如果用JULIA_HOME,有可能會發生
ERROR: system image file "C:\Users[login]\AppData\Local\Julia-0.4.5\bin\lib\julia\sys.dll" not found` 的錯誤

加完之後,開啟cmd介面,輸入julia,應該就會看到以下畫面

           _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.0 (2016-09-19 18:14 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-win64-mingw32

julia>

接著,試著做一些簡單運算

julia> 1+2
3
julia>ans
3

ans會重複執行最後一個算式

結束 julia cli

^代表ctrl,按 ^D 就可以跳出julia cli

基礎應用

建立檔案並引用

建立檔案 file.jl
並且寫入計算式

執行簡單運算

file.jl

1+2+3+4+5

在julia cli介面輸入include("file.jl")

julia>include("file.jl")

15
列印出字串

使用println 列印出結果

julia>println("Greetings! 你好! 안녕하세요?")

Greetings! 你好! 안녕하세요?
自動處理長數字串

小數點五位數以上的字串,會自動用科學計數表示

julia>0.00001
1.0e-5
pi

直接輸入pi,就可以應用在運算中

julia> pi
π = 3.1415926535897...

julia>3*pi
9.42477796076938
sqrt 開平方

sqrt()來計算開平方的結果

julia>sqrt(100)
10.0
typeof 檢查型別

typeof()可以用來檢查型別
檢查數字,輸出結果會因為電腦系統位元而有所差異
例如typeof(1)在system 32-bit 跟64-bit的輸出結果,分別為 Int32, Int64
底下是在system 64-bit執行的結果

julia>typeof(1)
Int64
數字型態

這裡要特別提到Uint 及 Int 差異
Uint表示非負的數值
Int則包含負值

Type Signed? Number of bits Smallest value Largest value
Int8 8 -2^7 2^7 - 1
UInt8 8 0 2^8 - 1
Int16 16 -2^15 2^15 - 1
UInt16 16 0 2^16 - 1
Int32 32 -2^31 2^31 - 1
UInt32 32 0 2^32 - 1
Int64 64 -2^63 2^63 - 1
UInt64 64 0 2^64 - 1
Int128 128 -2^127 2^127 - 1
UInt128 128 0 2^128 - 1
Bool N/A 8 false (0) true (1)
浮點數型態
Type Precision Number of bits
Float16 half 16
Float32 single 32
Float64 double 64
取得最大typemax()及最小 typemin()範圍
julia>typemax(Int64)
9223372036854775807
julia>typemin(Int64)
-9223372036854775808

更進一步應用,可以參考官網integers-and-floating-point-numbers

運算邏輯則與一般語言類似,有遇到需要查詢時,再到官網查詢即可
mathematical-operations

邏輯串接

julia其中最大的特色就是邏輯串接(Chaining comparisons)功能
可以由左至右依序進行邏輯判斷
例如,

julia> 1 < 2 <= 2 < 3 == 3 > 2 >= 1 == 1 < 3 != 5
true

複數(complex number) im

複數(complex number)可以表成a+bi

a和b都是真實的數字,i則是一個虛設的單位
並且,其i的平方 = −1

julia提供一個global 常數im,用來扮演複數中的i
例如 1+2+1m+3m+4 得到結果為 7 + 3m

通常複數會被應用在象限運算或圖形演算




更進階的一些範例可以參考官網complex-and-rational-numbers

其他

Juila language 應用篇 (編寫中)

Debug Note

ERROR: LoadError: UndefVarError: showln not defined

發生 ERROR: LoadError: UndefVarError: showln not defined 錯誤訊息時,請改用 @show

ERROR: LoadError: UndefVarError: readtable not defined

在julia終端機介面輸入下指令即可安裝

Pkg.add("DataFrames")

並且載入 DataFrames

using DataFrames

如果你喜歡我們的文章內容,請在這裡按個讚



討論

comments powered by Disqus