我在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)”。
添加回答
舉報
0/150
提交
取消