如何在Matlab中的另一个文件中打印文件?

时间:2011-10-21 17:45:26

标签: matlab file-io

例如,如果我有文件A.datB.dat以及

A.dat

  

1 2 3

     

4 5 6

     

7 8 9

,文件B.dat最初为空。

我如何(使用Matlab函数)打开文件B.dat打印A.dat内容并打印其他条目,如

  

10 11 12

     

13 14 15

我试过

fileA=fopen('A.dat','r')

fileB=fopen('B.dat','w');

fprintf(fileB,fileA);

fprintf(fileB,fscanf(fileA));

fprintf(fileB,fscanf(fileA,'%s'));

但没有效果。

2 个答案:

答案 0 :(得分:2)

您似乎对使用的功能感到困惑。 fprintffscanf可能不是您想要的(但可能有用)。

尝试改为使用freadfwrite

dataA = fread(fileA)
fwrite(fileB, dataA)

http://www.mathworks.se/help/techdoc/ref/f16-5702.html#f16-14516

上查看文档中的文件操作

答案 1 :(得分:1)

您应该可以使用fgetsfopen提供的文件ID不是文件中的信息,因此您的第一个示例将无效。

假设您的文件是文本(不是二进制文件),那么类似下面的内容应该可以复制文件

fileA = fopen('A.dat','r');
fileB = fopen('B.dat', 'w');
while (line = fgets(fileA)) ~= -1
    fprintf(fileB, line);
end
fclose(fileA);
fclose(fileB);

fgets从文本文件中为您提供整行(包括换行符)。

如果您的文件是二进制文件,则以下内容将起作用

fileA = fopen('A.dat', 'r');
fileB = fopen('B.dat', 'w');
AData = fread(fileA);
fwrite(fileB, AData);

注意:不幸的是我在这台电脑上没有matlab,所以我无法测试这些例子。

有关不同文件函数的更多信息,matlab已经看到: http://www.mathworks.com/help/techdoc/ref/f16-5702.html#f16-14516