Julia常用函式

2021-10-18 10:39:01 字數 2442 閱讀 4158

轉化資料型別

繪圖注釋

直接在陣列後面新增乙個元素

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)

第一次的結果:

2×2 array:

281479271677952 0

0 0第二次的結果

2×2 array:

4.94066e-324 3.45846e-323

4.94066e-324 1.97626e-323

t(a)或者convert(t,a):可以將a轉化成t型別

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_continuousscale.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...