Jei*_*man 0 matlab fopen text-files
我有一个包含需要提取并插入到新文本文件中的数据的大文本文件.我可能需要将这些数据存储在单元格/矩阵数组中?
但就目前而言,问题是我正在尝试测试较小的数据集,以检查下面的代码是否有效.
我有一个代码,在其中打开一个文本文件,扫描它并复制数据并将其保存在另一个名为"output.txt"的文本文件中.
问题:似乎没有正确保存文件.它只是在文本文件中显示一个空数组,例如this " [] ".原始文本文件只包含字符串.
%opens the text file and checks it line by line.
fid1 = fopen('sample.txt');
tline = fgetl(fid1);
while ischar(tline)
disp(tline);
tline = fgetl(fid1);
end
fclose(fid1);
% save the sample.txt file to a new text fie
fid = fopen('output.txt', 'w');
fprintf(fid, '%s %s\n', fid1);
fclose(fid);
% view the contents of the file
type exp.txt
Run Code Online (Sandbox Code Playgroud)
我从哪里去?
通过一次将所有内容加载到内存来读取输入文件并不是一个好习惯.这样,您能够读取的文件大小受到计算机上的内存量(或操作系统愿意分配给单个进程的内存量)的限制.
相反,使用fopen及其相关函数以逐行或char-by-char读取文件.
例如,
fid1 = fopen('sample.txt', 'r');
fid = fopen('output.txt', 'w');
tline = fgetl(fid1);
while ischar(tline)
fprintf(fid, '%s\n', tline);
tline = fgetl(fid1);
end
fclose(fid1);
fclose(fid);
type output.txt
Run Code Online (Sandbox Code Playgroud)
当然,如果您事先知道输入文件永远不会很大,您可以使用textread或某些等效函数一次性读取它.