load test.txt % 导入文本数据,并保存在 test 变量;
x= load('test.txt') % 导入文本数据,并保存到x变量;
x = load('test.txt')
x = dlmread('test.txt')
x= load('test.txt') % 同一种符号隔开
x = dlmread('test.txt') % 同一种符号隔开
x = csvread('test.txt') % 多种符号隔开
x = importdata('test.txt')
x.data % 查看读取的数值型数据
x.textdata % 查看读取的文本数据
返回结构体变量、分隔符、头文件行数:
[x, s, h] = importdata('examp02_07.txt');
逗号作为分隔符,设置读取初始位置:
x = dlmread('test.txt', ',', 2, 0)
空格作为分隔符,头文件信息 2 行 :
x = importdata('examp02_08.txt',' ',2)
fid = fopen('test.txt','r'); % 以只读方式打开
line1 = fgets(fid); % 读取文件的第1行
line2 = fgets(fid); % 读取文件的第2行
% 从第3行开始读取数据,将读取的相同数据类型的连续元胞连接成一个元胞数组
A = textscan(fid, '%f %f %f', 'CollectOutput', 1)
line6 = fgets(fid); % 读取文件的第6行
line7 = fgets(fid); % 读取文件的第7行
B = textscan(fid, '%f %f %f', 'CollectOutput', 1)
fclose(fid);
fid = fopen('test.txt', 'r');
C_data = textscan(fid, '%f%f%f', 'HeaderLines', 2); % 从第3行开始读
fclose(fid);
x = dlmread('test.txt') % 用 0 补齐
x = dlmread('test.txt')
fid = fopen('test.txt', 'r');
A = textscan(fid, '%f %*s %f %*s','delimiter',' ', 'CollectOutput', 1)
fclose(fid);
file_content= importdata('test.txt') % 返回字符串元胞数组
file_content= char(file_content) % 将字符串元胞数组转为字符矩阵
t = str2num(FileContent(:, 8:9)) % 提取字符矩阵的第8至9列,并转为数字
fid = fopen('test.txt', 'r');
% 用'-,:'作分隔符
A = textscan(fid, '%d %d %d %d %d %f %*s','delimiter','-,:','CollectOutput',1)
fclose(fid);
fid = fopen('test.txt');
C = textscan(fid, '%s %s %f32 %d8 %u %f %f %s') % 以指定格式读取文件中数据
fclose(fid);
fid = fopen('test.txt', 'r');
A = textscan(fid, '%s %s %s %d %s %d %s %d %s', 'delimiter', ' ')
fclose(fid);
fid = fopen('examp02_11.txt','r');
A = textscan(fid, '%*s %*s %*s %d %*s %d %*s %d %*s', 'delimiter', ' ','CollectOutput', 1)
fclose(fid);
x = [1.455390 + 1.360686i, 8.692922 + 5.797046i; 3.509524 + 5.132495i, 4.018080 + 0.759667i];
% 用逗号(',')作分隔符,用'\r\n'作换行符
dlmwrite('test.txt', x, 'delimiter', ',', 'newline', 'pc')
x = 10*rand(2, 6);
fid = fopen('test.txt','wt');
fprintf(fid,'%f+%fi, %f+%fi\n', x);
fclose(fid);
x = 10000*rand(3, 2);
fid = fopen('test.txt', 'wt');
fprintf(fid,'%f %f %f\n', x); % 注意:文件里排布为2行3列,即行优先
%fprintf(fid,'%e %e %e\n', x);
fclose(fid);
空一行:dlmwrite('test.txt', x, '-append', 'roffset', 1, 'delimiter', ' ');
分隔符:dlmwrite('test.txt', x, 'delimiter', '\t', 'precision', '%8.4f');
分隔符:dlmwrite('test.csv', x, 'delimiter', ',', 'precision', '%8.4f', 'newline', 'pc');
dlmwrite函数自动补零对齐;
csvwrite('csvlist.dat', x); % 逗号隔开
保存数据、间隔tabs宽度、追加数据:
a=rand(5);
save('a.txt','a','-ascii');
save('a.txt','a','-ascii','-tabs');
save('a.txt','a','-append','-ascii','-tabs');
fid=fopen(Fid_FilePath,'wt');
fprintf(fid,'%s\n',Fid_Header); % 写字符串
fprintf(fid,'%10.4f %10.4f %10.4f %10.4f\n', Data_Fid); % 写数字
fclose(fid);
w = 10*rand(1, 4);
x = 10*rand(1, 3);
y = 10*rand(1, 2);
z = 10*rand;
fid = fopen('test.txt', 'at');
fprintf(fid, '%-f %-f %-f %-f\n', w);
fprintf(fid, '%-f %-f %-f\n', x);
fprintf(fid, '%-f %-f\n', y);
fprintf(fid, '%-f\n', z);
fclose(fid);
以下是待写入内容:
Title = Peak File
Num of Peaks = 2048
Time(ms) -- Amplitude-- Real -- Imag
0.0000 36061.1716 -31236.0000 18020.0000
0.0500 36075.8757 -31327.0000 17891.0000
0.1000 36169.9271 -31501.0000 17775.0000
0.1500 36114.7887 -31541.0000 17591.0000
代码如下:
Title = 'Title = Peak File';
Num = ['Num of Peaks =' num2str(length(Module))];
Name = 'Time(ms) -- Amplitude-- Real -- Imag';
[filename, pathname] = uiputfile('*.ddd'); % 随便一个后缀名
FileName = [pathname, filename];
dlmwrite(FileName, Title, 'delimiter', '') % 不加 append 以覆盖同名文件
dlmwrite(FileName, Num, '-append', 'delimiter', '') % 追加续写
dlmwrite(FileName, Name, '-append', 'delimiter', '')
dlmwrite(FileName, [SampleTime, Module, DataReal, DataImaginary], '-append', 'delimiter', '\t', 'precision', '%.4f')