2017-09-14 5 views
0

私にこのコードがあります。
1. 2つのファイル "blue.csv"、 "red.csv"を開きます。
2.値を計算し、if-elseステートメントに基づいて、出力を対応するファイルに出力します。 else状態でfprintf(fp1,'%d,%d\n',x,y);文が動作していないfprintfがGNUのオクターブで正しく動作しない

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 

問題がある、つまり、私はgOfXので働いている(以下、上記の文とは、完全に作業罰金ですがfp1で指定されたファイルに何かを得ることができませんも元気)。

私はファイルポインタなどを変更しようとしましたが、それはうまくいきませんでした。 また、if vara < varbの条件をif vara > varbに変更すると、fp2が指すファイルに何も印刷されません(したがって、私にとっては>の部分に問題があるようです)。

解決策があれば、私の割り当てが大幅に短縮される可能性があります。 ありがとう!

+0

あなたはファイルを 'fclose'する必要があります... – Andy

答えて

0

使用Octaveのfflush

fcloseを使用してファイルをクローズすることを忘れないでくださいバッファをフラッシュするには。

+2

@ me.ydv.5もっと重要なことに、彼はファイルをクローズする必要があります! –