fprintf 在 GNU-octave 中不能正常工作

fprintf not working properly in GNU-octave

我身边有这段代码,
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

问题是,else 条件下的 fprintf(fp1,'%d,%d\n',x,y); 语句不起作用,即,尽管上面的语句和下面的工作正常(gOfX 因此也工作正常)。

我试过更改文件指针等,但 none 行得通。 此外,如果我将 if vara < varb 条件更改为 if vara > varb,那么我不会将任何内容打印到 fp2 指向的文件中(因此对我来说,这似乎是 [=18= 的问题]部分)。

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

使用 Octave 的 fflush 刷新缓冲区

不要忘记使用 fclose.

关闭文件