在matlab中把一个文件夹里一个txt中的数据提出并且处理后,怎样按照原来的名字保存到另一个文件夹中?

比如程序是这样的,想把E:尀work尀matlab尀all尀这个文件夹中第一个txt中数据处理后得到的数据b保存到文件夹✀E:尀work尀matlab尀final尀中,该怎么办 T_T处理数据的方式就是每100个数据求RMS值file=dir(✀E:尀work尀matlab尀all尀*.txt✀);j=1;A=importdata([✀E:尀work尀matlab尀all尀✀,✀尀✀,file(j).name],✀尀t✀);name=file(j).name(1:end-4);a=length(A);a=floor(a/100)-1;a=a*100+1;b=[];k=1;for i=1:100:a b(k)=0; for j=0:1:99 b(k)=b(k)+A(i+j)*A(i+j); end; b(k)=sqrt(b(k)/10); k=k+1;end;b=b✀; %得到的b是一个列向量
2026年09月18日 00:38
有2个网友回答
网友(1):

纯数据txt文件,直接load就可以了。
写了个简单的例子,先写了8个文件,每个文件中存取1000*3的随机数。
然后读取这8个文件,将每个文件中的第三列存到矩阵A中。
function batchWriteReadTxt
% 文件数
TxtFileNum = 8;
% 写数据文件
for i = 1 : TxtFileNum
% 构造文件名字符串
FileName = sprintf( '%s.txt', num2str( i ) );
% 以写方式创建文件
fid = fopen( FileName, 'w' );
% 如果创建文件成功
if fid > 0
% 生成随机数
A = rand( 1000, 3 ); % 1000行,3列
% 写数据
fprintf( fid, '%10.4f, %10.4f, %10.4f\r\n', A );
% 关闭文件
fclose( fid );
end
end
% 初始化数据,将每个文件中的第三列存为1列,1000行
A = zeros( 1000, TxtFileNum );
% 读文件
for i = 1 : TxtFileNum
% 构造文件名字符串
FileName = sprintf( '%s.txt', num2str( i ) );
% 纯数据文件,直接load就可以
data = load( FileName );
A( :, i ) = data( :, 3 );
end

网友(2):

使用dlmwrite(filename, M, 'D'),将数据M写到文件dlmwrite(filename, M, 'D'),以’D’为分隔

filename=fullfile('E:\work\matlab\final\',file(j).name);
dlmwrite(filename, b, '\t');