Итак, в моей руке есть вызов, который я пытаюсь выполнить. У меня есть Matlab-код, который отлично работает homever, я хочу написать тот же код на Python. Homever Я не получаю те же результаты.
Я пытался использовать цикл for, отличный от цикла в matlab. Хотя они должны давать одинаковые результаты, я потерпел неудачу в какой-то момент цикла, хотя я не мог понять, где была ошибка.
for ii = 1:100 #matlab code
healthy=2*randn(100,1000)+5;
patient=2*randn(100,1000)+7;
threshold=mu_healthy-sd_healthy:0.1:mu_patient+sd_patient;
for i=1:length(threshold)
TP(i)=sum(patient>=threshold(i));
FP(i)=sum(healthy>=threshold(i));
TN(i)=sum(healthy<threshold(i));
FN(i)=sum(patient<threshold(i));
end
FPR(ii,:)=FP/1000;
TPR(ii,:)=TP/1000;
def appending(): #python code
for n in range(0,50):
for x in range(0,1000):
for a in range(0,61):
if Apatient[x,n]>=newthreshold[a]:
TP[a].append(Apatient[x,n])
elif Ahealthy[x,n]>=newthreshold[a]:
FP.append(Ahealthy[x,n])
elif Apatient[x,n]<newthreshold[a]:
TN.append(Apatient[x,n])
elif Ahealthy[x,n]<newthreshold[a]:
FN.append(Ahealthy[x,n])
Если вы можете запустить это в Matlab, вы увидите FN, Значения TN с 61 значением в каждом столбце. Я хочу, чтобы то же самое происходило и в моем цикле, так как каждый раз, когда я запускаю этот код, я получаю много элементов. Спасибо