fprintf在GNU-octave中无法正常工作

问题描述:

有这段代码与我,哪个。
1.打开两个文件“blue.csv”,“red.csv”。
2.计算该值并基于if-else语句,将输出打印到相应的文件。fprintf在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 

的问题是,在else条件fprintf(fp1,'%d,%d\n',x,y);声明不工作,即,我无法通过fp1指定虽然上面的语句和下面是完全工作正常,在文件中得到任何东西(所以gOfX工作没关系)。

我试过改变文件指针等,但没有工作。 此外,如果我将if vara < varb条件更改为if vara > varb,则我没有得到任何东西打印到文件fp2指向的文件中(因此对我来说,似乎是>部分的问题)。

任何解决方案都可以大大节省我完成作业的时间。 谢谢!

+0

你需要'fclose'文件... – Andy

使用倍频的fflush刷新缓冲区

不要忘记使用fclose关闭您的文件。

+2

@ me.ydv.5更重要的是,他需要关闭文件! –