【问题标题】:fprintf not working properly in GNU-octavefprintf 在 GNU-octave 中无法正常工作
【发布时间】:2017-09-14 18:53:47
【问题描述】:

我有这段代码。
1.打开两个文件,"blue.csv","re​​d.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); 语句不起作用,即,我无法在fp1 指定的文件中获取任何内容,尽管上面和下面的语句都可以正常工作(@987654325 @ 因此也可以正常工作)。

我曾尝试更改文件指针等,但都没有奏效。 此外,如果我将if vara &lt; varb 条件更改为if vara &gt; varb,那么我不会将任何内容打印到fp2 指向的文件中(因此对我来说,这似乎是&gt; 部分的问题)。

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

【问题讨论】:

  • 你需要fclose文件...

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


【解决方案1】:

使用 Octave 的 fflush 刷新缓冲区

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

【讨论】:

  • @me.ydv.5 更重要的是,他需要关闭文件!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
相关资源
最近更新 更多