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

发布于 2024-12-11 01:03:53 字数 616 浏览 0 评论 0原文

例如,如果我有文件 A.datB.dat 并且

A.dat 有

1 2 3

4 5 6

7 8 9

并且文件 B.dat 一开始是空的。

我如何(使用Matlab函数)打开文件B.datA.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'));

但没有一个有效。

For example, if I have the file A.dat and B.datand

A.dat have

1 2 3

4 5 6

7 8 9

and the file B.dat is empty at first.

How can I (using Matlab functions) open the file B.dat print the A.dat content to it and print another entries like

10 11 12

13 14 15

?

I tried

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

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

fprintf(fileB,fileA);

or

fprintf(fileB,fscanf(fileA));

or

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

but none works.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

极致的悲 2024-12-18 01:03:53

您似乎对这些功能的用途感到困惑。 fprintffscanf 可能不是您正在寻找的(但可能很有用)。

尝试使用 freadfwrite 代替:

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

查看文件操作文档 http://www.mathworks.se/help/techdoc/ref/f16-5702.html#f16-14516

You seem to be confused as to what the functions are used for. fprintfand fscanf are probably not what you are looking for (but can be useful).

Try using fread and fwrite instead:

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

Check the documentation for file operations at http://www.mathworks.se/help/techdoc/ref/f16-5702.html#f16-14516

帅冕 2024-12-18 01:03:53

您应该能够使用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

You should be able to use fgets. fopen gives a file ID not the information in the file, so your first example won't work.

Assuming that your file is text (not binary) then something like the following should work to copy the file

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

fgets gives you an entire line (including newline characters) from a text file.

If your file is binary then something like the following would work

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

Note: Unfortunately I don't have matlab on this computer so I couldn't test the examples.

For more info on the different file functions matlab has see:
http://www.mathworks.com/help/techdoc/ref/f16-5702.html#f16-14516

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文