gpt4 book ai didi

matlab - 在Matlab中写入文件时从EOF中删除字符

转载 作者:行者123 更新时间:2023-12-04 07:02:05 25 4
gpt4 key购买 nike

在 Matlab 中,在创建一定数量的行并将它们打印到文件后,我需要删除一行并将其余数据重写到同一个文件中。当我这样做时,新数据会覆盖以前的数据,但由于数据比原始数据短,因此仍然有原始数据的残余。有谁知道删除额外数据的最佳/最有效方法是什么?

这是我正在尝试做的一个简化示例:

fid = fopen('file.txt','w');  
for i=1:10
fprintf(fid,'%i\r\t',i);
end
frewind(fid);
for i=3:5
fprintf(fid,'%i\r\t',i);
end
fprintf(fid,'EOF');
fclose(fid);

我已经看遍了,但我似乎无法找到我的问题的解决方案。有什么建议?

最佳答案

在不使用任何临时文件的情况下,您可以执行以下操作:

fid = fopen('file.txt', 'wt');
for i=1:10
fprintf(fid, '%i\n', i);
end
frewind(fid);
for i=3:5
fprintf(fid, '%i\n', i);
end
pos = ftell(fid); % get current position in file
fclose(fid);

% read from begining to pos
fid = fopen('file.txt', 'r');
data = fread(fid, pos);
fclose(fid);

% overwite file with data read
fid = fopen('file.txt', 'w');
fwrite(fid, data);
fclose(fid);

关于matlab - 在Matlab中写入文件时从EOF中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1690962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com