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

时间:2017-09-14 18:53:47

标签: if-statement file-io printf octave gnu

这段代码和我在一起,其中 1.打开两个文件," blue.csv"," red.csv"。
2.计算该值并根据if-else语句将输出打印到相应的文件。

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

问题是,fprintf(fp1,'%d,%d\n',x,y);条件中的else语句不起作用,即我无法在fp1指定的文件中获取任何内容,尽管上下文中的语句是完美的工作正常(gOfX因此工作得很好)。

我已经尝试更改文件指针等,但没有一个工作。 此外,如果我将if vara < varb条件更改为if vara > varb,那么我就不会将任何内容打印到fp2所指向的文件中(因此对我而言,{{{}}似乎存在问题1}}部分)。

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

1 个答案:

答案 0 :(得分:0)

使用Octave的Here来刷新缓冲区

不要忘记使用fflush关闭文件。