Julia對矩陣進行預先賦值

2021-06-27 15:18:53 字數 2823 閱讀 7745

我們知道,對於matlab和julia 而言,預先賦值可以獲得更快的運算速度,特別是matlab. 由於julia 經常用循還解決相關問題,預先賦值使用的頻率相比matlab而言大大減小。不過,還是有一些地方,可能用到的,盡量不要使用cat 操作,效率低下,速度慢得很。這個原則,還僅是對於matlab 還是julia,基本上都管用。

和matlab不同,matlab往往是使用zeros(n,m)的方法對數值進行賦值,但不等對混合型別(有字串和數值混在一起的)進行賦值。

一、julia的賦值:是對array進行相應的操作而完成。

julia> a =array(string,1,7) 

1x7 array:

#undef  #undef  #undef  #undef  #undef  #undef  #undef

julia> b =array(float64,1,7)

1x7 array:

0.0  0.0  0.0  0.0  0.0  0.0  0.0

julia> c=array(int64,1,7)

1x7 array:

0  0  0  0  0  0  0

julia> h =array(kbardata,10000) ; # 自定義型別kbardata的賦值,特別補充

有時,自定義型別還是很常見,對這個賦值有相當大的意義!

julia> e=array(any,3,7) 

3x7 array:

#undef  #undef  #undef  #undef  #undef  #undef  #undef

#undef  #undef  #undef  #undef  #undef  #undef  #undef

#undef  #undef  #undef  #undef  #undef  #undef  #undef

julia> f=array(int64,3,7)

3x7 array:

0  0  0  0  0  0  0

0  0  0  0  0  0  0

0  0  0  0  0  0  0

julia> g=array(string,3,7)

3x7 array:

#undef  #undef  #undef  #undef  #undef  #undef  #undef

#undef  #undef  #undef  #undef  #undef  #undef  #undef

#undef  #undef  #undef  #undef  #undef  #undef  #undef

julia> c=array(string,3,7)

3x7 array:

#undef  #undef  #undef  #undef  #undef  #undef  #undef

#undef  #undef  #undef  #undef  #undef  #undef  #undef

#undef  #undef  #undef  #undef  #undef  #undef  #undef

注意:一維array,就是乙個vector!

julia> g=array

array

julia> g=array(string,1)

1-element array:

#undef

julia> g=array(string,7)

7-element array:

#undef

#undef

#undef

#undef

#undef

#undef

#undef

總之,能賦值的就預先賦值,這樣可能比push!大大提高效率。

二、 盡可能替代cat函式

julia> table =["2014-9-17 15:19" 3260.0 700 3360.0 800 3620.0  12;"2014-9-18 15:

19" 3260.0 700 3360.0 800 3620.0  12]

2x7 array:

"2014-9-17 15:19"  3260.0  700  3360.0  800  3620.0  12

"2014-9-18 15:19"  3260.0  700  3360.0  800  3620.0  12

julia> tab =["2014-9-19 15:19" 3260.0 700 3360.0 800 3620.0  12]

1x7 array:

"2014-9-17 15:19"  3260.0  700  3360.0  800  3620.0  12

julia> b=vcat(table,tab)

3x7 array:

"2014-9-17 15:19"  3260.0  700  3360.0  800  3620.0  12

"2014-9-18 15:19"  3260.0  700  3360.0  800  3620.0  12

"2014-9-19 15:19"  3260.0  700  3360.0  800  3620.0  12

julia> @time newtable =vcat(table,table,table);

elapsed time: 0.102088118 seconds (1039984 bytes allocated)

僅管vcat效率比較低,,因為象matlab或julia的矩陣值儲存,事實上是按列來排位的,如果是vcat相當於需要精準地insert n個位置。

因此,我們盡量避開cat操作。

我個人建議,在這裡,可以使用循還,加快運算速度,當然,從功能上看,用cat操作簡單省事,但代價是時間。

對列表List進行賦值

今天講講python中對list進行賦值的方法,並會接下來給出例項和截圖詳解。這個問題源自於我想對乙個某乙個區間內的值進行均勻劃分成50份,對此,我想到了用list,並用迴圈賦值來實現.並將區間內的值用區間的中值來表示,很顯然,算出來的中值肯定會有很多的小數字數,所以我們需要對得到的數進行處理,保留...

使用numpy對矩陣進行運算

如下 encoding utf 8 importnumpyasnp fromnumpy.linalgimportinv fromnumpyimportdot fromnumpyimportmat a np.mat 1,1 建立乙個一行一列的矩陣 print a矩陣為 n a print a矩陣的轉置...

ajax無重新整理方式對form表單進行賦值!

把json資料填充到from表單中 form id editform action user.php 使用者名稱 input type text name usrname br input type text name address br 性別 input type radio name valu...