Как я могу преобразовать свою функцию в Matlab для Python? - PullRequest
0 голосов
/ 09 июня 2019

Я хочу преобразовать этот код из matlab в python, но я получаю эту ошибку, и я не знаю, о чем она. Я ценю, если вы могли бы помочь мне с моим кодом

я уже пробовал играть с пробелами. я не знаю, как работать с для цикла на Python

это моя функция в Matlab:

function err=Mse(RuleBase,x1,x2)
temp=zeros(1,6);
Soogeno=zeros(49,4);
for i=1:length(RuleBase)
    y=crisp(0,50,RuleBase(i,3),7);
    temp(1,:)=RuleBase(i,:);
    temp(1,3)=y;
    Soogeno(i,:)=temp(1,1:4);    
end

и это мой код Python:

def Mse(RuleBase,x1,x2):
temp=np.zeros(shape = (1,6))
soogeno=np.zeros(shape = (49,4))

for i in range(len(RuleBase)):
    y=crisp(m=0,M=50,fy=RuleBase[i,3],n=7) 
    temp[0]=RuleBase[i]
    temp[0,2]=y
    Soogeno[i]=temp[0,0:3]
    return(soogeno)

это ошибка, которую я получаю:

для i в диапазоне (len (RuleBase)): ^ IndentationError: неожиданный отступ

1 Ответ

1 голос
/ 09 июня 2019

В Python строго применяются отступы:

это должно работать:

def Mse(RuleBase,x1,x2):
    temp=np.zeros(shape = (1,6))
    soogeno=np.zeros(shape = (49,4))

    for i in range(len(RuleBase)):
        y=crisp(m=0,M=50,fy=RuleBase[i,3],n=7)
        temp[0]=RuleBase[i]
        temp[0,2]=y
        Soogeno[i]=temp[0,0:3]
    return(soogeno)     
...