2017-09-14 14 views
0

Il ya ce morceau de code avec moi, qui.
1. ouvre deux fichiers, "blue.csv", "red.csv".
2. calcule la valeur et, en fonction de l'instruction if-else, imprime la sortie dans le fichier correspondant.fprintf ne fonctionne pas correctement dans GNU-octave

fp1 = fopen('red.csv','w'); 
fp2 = fopen('blue.csv','w'); 

for x = 0:100:2500, 
    for y = 0:100:2500, 
     vector = [x , y] 
     vara = gOfX(vector,mu1,finalcovariance) ; 
     varb = gOfX(vector,mu2,finalcovariance) ; 
     if vara < varb 
      fprintf(fp2,'%d,%d\n',x,y); 
      fprintf('vara-varb is -------negative\n ');   
     else 
      fprintf('%d,%d\n',x,y); 
      fprintf(fp1,'%d,%d\n',x,y); 
      fprintf('vara-varb is ---------------------positive\n '); 
     endif; 
    endfor 
endfor 

Le problème est, la déclaration fprintf(fp1,'%d,%d\n',x,y); en else état ne fonctionne pas, par exemple, je suis incapable d'obtenir quoi que ce soit dans le fichier spécifié par fp1 bien que les déclarations ci-dessus et ci-dessous sont bien parfaitement travail (gOfX travaille donc bien aussi).

J'ai essayé de changer les pointeurs de fichiers etc. mais rien de tout cela n'a fonctionné. En outre, si je change la condition if vara < varb à if vara > varb, alors je ne reçois rien imprimé dans le fichier pointé par fp2 (donc pour moi, il semble que le problème avec > partie).

Toute solution pourrait considérablement économiser mon temps en finissant mon devoir. Merci!

+0

vous devez 'fclose' le fichier ... – Andy

Répondre

0

Utilisez Octave fflush pour vider le tampon

Ne pas oublier de fermer vos fichiers à l'aide fclose.

+2

@ me.ydv.5 Plus important encore, il doit _close_ le fichier! –