为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中转换MATLAB代码

在Python中转换MATLAB代码

海绵宝宝撒 2021-04-27 01:05:30
我在MATLAB中有这段代码,我正在尝试在Python中进行转换。M=zeros(1,N);i=1;while i<=N  ind=mod(p*(i-1)+1,N);if ind==0  ind=N;endwhile M(ind)~=0  ind=ind+1;endM(ind)=i;i=i+1;ind=ind+1;enddisplay(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, matplotlibN = 24p = 2n_lay = 2n_wc=1M=zeros(1,N)i=1;while i<=N:    ind=mod(p*(i-1)+1,N)if ind==0 :    ind=Nendwhile M(ind)!=0:    ind=ind+1endM(ind)=ii=i+1ind=ind+1enddisplay(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
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

转换后的代码中有很多语法错误和其他错误。所有数组都应从圆括号转换为方括号。虽然这不起作用,但是您的代码应如下所示:


import numpy, scipy, matplotlib

N = 24

p = 2

n_lay = 2

n_wc=1

M=[]

i=1;

while i<=N:

    ind=(p*(i-1)+1)%N

if ind==0 :

    ind=N


while M[ind]!=0:

    ind=ind+1


M[ind]=i

i=i+1

ind=ind+1



M1=[]

for i in range (1,M):

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

另外,如果要更新数组中的添加元素,则应使用“ array.append(element)”。


查看完整回答
反对 回复 2021-05-11
  • 1 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信