2

我想将我的函数结果保存在一个文本文件中。这可以在malab中使用以下方式完成:

  1. 使用 Printf

          fileID = fopen('testdata.txt', 'w');
          fprintf(fileID, '%d %d %d\n', v);
          fclose(fileID);
    
  2. 使用保存

          save('testdata.txt', 'v', '-ascii');
    

但问题是使用两种方法,如果重复该功能,文件将被覆盖如何解决?我需要 10 次运行的所有输出

下面是一些例子: A% USING PRINTF v = [3 6 9];

    >> fileID = fopen('testdata.txt', 'w');
       fprintf(fileID, '%d %d %d\n', v);
       fclose(fileID);

文件输出(第 1 行):3 6 9

       >> v= [1 2 3];
       >> fileID = fopen('testdata.txt', 'w');
          fprintf(fileID, '%d %d %d\n', v);
          fclose(fileID);

文件的输出(第 1 行):1 2 3(文件被覆盖)

B %使用保存

       >> save('testdata.txt', 'v', '-ascii');

文件输出(第 1 行):1.0000000e+000 2.0000000e+000 3.0000000e+000

       >> v = [3 6 9];
       >> save('testdata.txt', 'v', '-ascii');

文件输出(第 1 行): 3.0000000e+000 6.0000000e+000 9.0000000e+000


                            **Printing N values**

上例中的 V 是 3 个条目:如果存在 N 个条目,肯定有办法显示它们吗?

4

2 回答 2

2

打开文件时,使用

fileID = fopen('testdata.txt', 'a');

用“a”代替“w”。这将附加到该文件。请参阅:fopen

于 2012-04-07T12:48:49.597 回答
0

这是代码:

                for i= 1:4;
                fileID = fopen('testdata.txt', 'at');
                fprintf(fileID, 'this is answer %d\n',i);
                fprintf(fileID, '%5.3e\n', v{i});
                fclose(fileID);
                end

在记事本中回答:

       this is answer 1
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       0.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       this is answer 2
       1.000e+000
       0.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       this is answer 3
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       0.000e+000
       1.000e+000
       1.000e+000
       this is answer 4
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       0.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
       1.000e+000
于 2012-04-08T11:31:09.820 回答