我正在尝试将matlab脚本转换为python代码,但我有此循环:
n = 3;
v = zeros(n,n);
for i =1:n
for j =1:i
v(i,j) = ((2)^(i-j))*((3)^(j-1));
end
end
我设法将其转换为以下python代码:
import numpy as np
n = 3
v = np.zeros((n,n))
for i in range(1,n+1):
for j in range(1,i+1):
v[i-1,j-1] = ((2)**(i-j))*((3)**(j-1))
但是看起来不太好。有没有更简洁的方法在python中编写此循环?我想摆脱range(1,n + 1)并将其通常写为range(n),但是我卡住了。
答案 0 :(得分:1)
General error during conversion: Error grabbing Grapes -- [download failed: commons-codec#commons-codec;1.5!commons-codec.jar]
java.lang.RuntimeException: Error grabbing Grapes -- [download failed: commons-codec#commons-codec;1.5!commons-codec.jar]
如果j和i都减一,则(i-j)的差不会改变,您只需要更新最后的幂即可。
您也可以在一个理解列表中进行操作,这在python中非常有用:
-rw-rw-r--. 1 user1 user 6797 Aug 2 2016 ivy-1.5.xml
-rw-rw-r--. 1 user1 user 10213 Aug 2 2016 ivy-1.5.xml.original
-rw-rw-r--. 1 user1 user 882 Oct 12 12:02 ivydata-1.5.properties