matlab循环数组里的数据库,用于在matlab的python中循环数组
Matlab代碼的直譯應(yīng)該是import numpy as np
x = np.zeros((parts, 2))
for i in range(parts):
x[i,0] = i*L + 1
x[i,1] = (i+1)*L
注意,Matlab使用基于1的索引,而Python使用基于0的索引。這就解釋了1在哪里出現(xiàn)的差異。在
但是,在使用NumPy時,如果避免對數(shù)組進行逐元素修改,則可以獲得更好的性能。相反,您應(yīng)該盡可能少地使用NumPy運算符或函數(shù)調(diào)用來表示計算,這些運算符或函數(shù)調(diào)用會同時影響整個數(shù)組。通過這樣做,您可以盡可能多地卸載NumPy底層的快速C/Fortran編譯函數(shù)調(diào)用,并減少執(zhí)行較慢的Python代碼所花費的時間。在
這通常意味著您希望避免使用Python for循環(huán),因為循環(huán)意味著這樣做
將執(zhí)行大量Python語句。在
例如,表達上述計算的更好方法是
^{pr2}$
請注意,x中的值僅使用2個賦值填充。每個
賦值影響x“一次全部”的整列。在
為了了解基于數(shù)組的操作有什么不同,
下面是一個使用parts = 10000,L = 3的(IPython)timeit測試:In [16]: %%timeit
....: x = np.zeros((parts, 2))
x[:, 0] = np.arange(1, parts*L, L)
x[:, 1] = x[:, 0] + L - 1
10000 loops, best of 3: 51.9 μs per loop
In [17]: %%timeit
....: x = np.zeros((parts, 2))
for i in range(parts):
x[i,0] = i*L + 1
x[i,1] = (i+1)*L
100 loops, best of 3: 3.58 ms per loop
總結(jié)
以上是生活随笔為你收集整理的matlab循环数组里的数据库,用于在matlab的python中循环数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java云应用,JAVA基础教程:云环境
- 下一篇: matlab有意思程序,matlab有意