将Matlab循环转换为python循环

时间:2018-10-12 10:05:00

标签: python matlab numpy

我正在尝试将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),但是我卡住了。

1 个答案:

答案 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