轉化資料型別
繪圖注釋
直接在陣列後面新增乙個元素
push!(pts,xk)#pts是陣列,xk是要新增的元素
對陣列進行批處理
reduce(+,[2,3,4])
## 結果是9
可以用來做判斷的時候能用
if reduce(&,[條件1,條件2,條件3])
可以用來將函式的結果組合成乙個陣列
map(x -> x^2,[3,4,5])
## 結果:[9,16,25]
可以用來組合多個函式的結果
map(x -> map(y -> x+y,[2,3]),[3,5])
##結果:[5,6][7,8]
similar(array, [element_type=eltype(array)], [dims=size(array)])
根據給定的array建立乙個相似的未初始化陣列,第二個引數和第三個引數是可選的,預設是給定的陣列的型別和大小。
例如:
a= [1 2;3 4]
b = similar(a)
b = similar(a,float64)
第一次的結果:t(a)或者convert(t,a):可以將a轉化成t型別2×2 array:
281479271677952 0
0 0第二次的結果
2×2 array:
4.94066e-324 3.45846e-323
4.94066e-324 1.97626e-323
x = convert(float64,15)
x = convert(vector,[2 3;4 5])
int8(3.14)
vector是生成乙個array
說實話我不是很喜歡這個包,但是我對julia不太熟悉,目前只接觸了這個繪圖包
畫函式
using gadfly
plot((x,y) -> 3*x +2*y,-1,1-1,1)
plot([sin,cos],-1,1)
畫箭頭
這裡有乙個非常坑的地方,那就是一旦plot()函式的引數**現過小數,那麼就必須全部引數都是小數,否則會報錯。為了方便起見,建議plot的所有引數全部使用浮點型
plot(x=[1,2],
y=[3,4],
xend=[2,1],
yend=[4,2],
geom.point,geom.vector(filled = true),
scale.x_continuous(minvalue =0 ,maxvalue = 5),
scale.y_continuous(maxvalue=5,minvalue=0))
這裡面x引數指的是起點的x座標,陣列裡面第乙個數是第乙個點的x座標,第二個數是第二個點的橫座標,y同理。
xend是終點的x座標,yend同理
scale.x_continuous和scale.y_continuous分別表示x軸的範圍和y軸的範圍
所以上面畫出來是如下圖
將多個圖組合在一起
當我們需要將多個圖組合在一起的時候,例如將目標函式的等高圖和最優化的迭代步圖組合在一起,這個時候我們就需要用到layer函式。
layer函式和plot函式的語法一致,只不過是layer會將繪圖的資料先儲存下來,等到要合併的時候,在通過plot函式一同畫出來
rosen = layer((x,y) -> 3*x +2*y,-1,2-1,2)
steps = layer(x=[1,2],
y=[3,4],
xend=[2,1],
yend=[4,2],
geom.point,geom.vector(filled = true))
plot(rosen,steps,
scale.x_continuous(minvalue = -1,maxvalue = 2),
scale.y_continuous(maxvalue=-1,minvalue=2))
# todo 這裡要寫乙個搜尋步長的函式
....
這個注釋有特殊的顏色提醒,可以在需要日後完成某樣工作的地方寫上這個備註,這個也是乙個程式設計技巧。 julia常用矩陣函式 Julia中的函式
如何宣告函式 julia為我們提供了一些編寫函式的方法。第乙個需要function和end關鍵字 function sayhi name println hi name,it s great to see you endfunction f x x 2end 我們可以像這樣呼叫已宣告的函式 sayh...
Julia之初體驗(十一)函式2
具有特殊名稱的運算子 一些特殊的表示式對應於具有非顯而易見名稱的函式的呼叫。expression calls a b c hcat a b c vcat a b c d hvcat a adjoint a i getindex a i xsetindex a.ngetproperty a.n xse...
初試 Julia 語言
之所以這樣說,有三個方面的理由 作為乙個動態語言,它的 jit 編譯器 在很多情況下 還沒有智慧型到,讓我可以同時享受動態語言的便利和它的速度優勢。例如最近我在試用 julia 時最先嘗試的就是把原來用 numba 寫的函式重寫一遍,然而發現結果非常不好。julia 版本的函式執行速度相當於純 py...