求助:MATLAB中读取TXT文件缩放后重命名保存的写入问题
解决MATLAB批量处理TXT文件并写入的问题
我来帮你补上写入文件的环节!你的代码已经完成了读取和数值缩放的核心操作,只需要在循环里添加几行代码,就能把处理后的数据保存成BF1.txt到BFn.txt啦。
修改后的完整代码
NoOFfiles = 4; for k = 1:NoOFfiles % 生成原文件名并读取、缩放数据 filename = sprintf('B%d.txt',k); A = load(filename)./1000; % 生成输出文件名 output_filename = sprintf('BF%d.txt',k); % 将缩放后的数据写入新文件 save(output_filename, 'A', '-ascii', '-double'); end
代码解释
- 生成输出文件名:用
sprintf和原文件编号k拼接出BFk.txt的格式,逻辑和读取原文件时保持一致。 - 写入文件:使用MATLAB的
save命令,加上-ascii参数确保保存为纯文本格式(而非MAT专属的二进制文件),-double参数保证数值精度。如果需要更灵活控制输出格式(比如指定小数位数、自定义分隔符),也可以用以下两种方式:- 用
dlmwrite快速写入(适合矩阵型数值):dlmwrite(output_filename, A, 'delimiter', ' '); % 用空格作为数值分隔符 - 用
fprintf精细控制格式(适合自定义输出样式):fid = fopen(output_filename, 'w'); fprintf(fid, '%.6f\n', A); % 保留6位小数,每行输出一个数值 fclose(fid);
- 用
注意事项
- 确保
B1.txt到B4.txt(或你设置的NoOFfiles对应数量)都在MATLAB当前工作目录下,否则需要在文件名前加上完整路径(比如'./data/B%d.txt')。 - 如果原TXT文件包含非数值内容,
load命令会报错,这时可以改用readmatrix或textread来读取数据,适配更复杂的文件格式。
内容的提问来源于stack exchange,提问作者user3780018
相关产品推荐
相关产品推荐

