在Python中转换MATLAB代码

我在MATLAB中有这段代码,我正在尝试在Python中进行转换。


M=zeros(1,N);

i=1;

while i<=N

  ind=mod(p*(i-1)+1,N);

if ind==0

  ind=N;

end

while M(ind)~=0

  ind=ind+1;

end

M(ind)=i;

i=i+1;

ind=ind+1;

end

display(M);

M1=zeros(m,2/n_lay*n_wc);

for i=1:m

  M1(i,:)=M(2/n_lay*n_wc*(i-1)+1:2/n_lay*n_wc*i);

end    

我不知道如何转换for循环,直到现在我只有下面的代码,我也不知道如何转换行“ M1(i,:) = M(2 / n_lay n_wc *( i-1)+1:2 / n_lay n_wc i)*“这是我从Python“无效语法”获得的问题。


import numpy, scipy, matplotlib

N = 24

p = 2

n_lay = 2

n_wc=1

M=zeros(1,N)

i=1;

while i<=N:

    ind=mod(p*(i-1)+1,N)

if ind==0 :

    ind=N

end

while M(ind)!=0:

    ind=ind+1

end

M(ind)=i

i=i+1

ind=ind+1

end

display(M)

M1=zeros(m,2/n_lay*n_wc)

for i in range (1,m):

    M1(i,:) = M(2/n_lay*n_wc*(i-1)+1:2/n_lay*n_wc*i)

end


海绵宝宝撒
浏览 218回答 1
1回答

喵喔喔

转换后的代码中有很多语法错误和其他错误。所有数组都应从圆括号转换为方括号。虽然这不起作用,但是您的代码应如下所示:import numpy, scipy, matplotlibN = 24p = 2n_lay = 2n_wc=1M=[]i=1;while i<=N:&nbsp; &nbsp; ind=(p*(i-1)+1)%Nif ind==0 :&nbsp; &nbsp; ind=Nwhile M[ind]!=0:&nbsp; &nbsp; ind=ind+1M[ind]=ii=i+1ind=ind+1M1=[]for i in range (1,M):&nbsp; &nbsp; M1[i,:] = M[2/n_lay*n_wc*(i-1)+1:2/n_lay*n_wc*i]另外,如果要更新数组中的添加元素,则应使用“ array.append(element)”。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python