在 Python 中转换 MATLAB 代码
Convert MATLAB code in Python
我在 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_layn_wc*(i-1)+1:2/n_layn_wci)*" 这是我从 Python "Invalid syntax".
得到的问题
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
您转换后的代码中存在很多语法错误和其他错误。所有数组都应从圆括号转换为方括号。虽然这不起作用,但您的代码应该看起来像这样:
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)"。
我在 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_layn_wc*(i-1)+1:2/n_layn_wci)*" 这是我从 Python "Invalid syntax".
得到的问题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
您转换后的代码中存在很多语法错误和其他错误。所有数组都应从圆括号转换为方括号。虽然这不起作用,但您的代码应该看起来像这样:
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)"。