概述
Matlab代码的直译应该是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在哪里出现的差异。在
但是,在使用NumPy时,如果避免对数组进行逐元素修改,则可以获得更好的性能。相反,您应该尽可能少地使用NumPy运算符或函数调用来表示计算,这些运算符或函数调用会同时影响整个数组。通过这样做,您可以尽可能多地卸载NumPy底层的快速C/Fortran编译函数调用,并减少执行较慢的Python代码所花费的时间。在
这通常意味着您希望避免使用Python for循环,因为循环意味着这样做
将执行大量Python语句。在
例如,表达上述计算的更好方法是
^{pr2}$
请注意,x中的值仅使用2个赋值填充。每个
赋值影响x“一次全部”的整列。在
为了了解基于数组的操作有什么不同,
下面是一个使用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
最后
以上就是着急草丛为你收集整理的matlab循环数组里的数据库,用于在matlab的python中循环数组的全部内容,希望文章能够帮你解决matlab循环数组里的数据库,用于在matlab的python中循环数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复