数据格式为
0:00.000 -0.750 -0.620
0:00.003 -0.750 -0.620
0:00.006 -0.750 -0.620
0:00.008 -0.750 -0.620
0:00.011 -0.750 -0.620
0:00.014 -0.750 -0.620
0:00.017 -0.750 -0.620
0:00.019 -0.760 -0.620
想把第一列数据作为文本赋给一个矩阵
用a=load('1.txt');
和
importdata('1.txt')
读出都是
以下结果
0 -0.7500 -0.6200
0 -0.7500 -0.6200
0 -0.7500 -0.6200
0 -0.7500 -0.6200
0 -0.7500 -0.6200
0 -0.7500 -0.6200
0 -0.7500 -0.6200
0 -0.7600 -0.6200
第一列变为0了,求给出完整代码?
% 打开文件(注意修改文件名)
fid = fopen('480684994.txt','rt');
if fid == 0, return, end
% 读文件直到结束
while ~feof(fid)
% 每次读入一行
s = fgetl(fid);
% 以空格作为数据项的分隔符
反过来Matlab读写矩阵到文本文件
批量读出文本中的数据常用的函数是importdata(),可以分别导入数据中的字符和数值数据,并可以跳过指定行等,importdata很强大,不仅可以操作文本数据,同样可以读取二进制数据,比如图像。
简单介绍下其用法:
A = importdata(filename,delimiterIn,headerlinesIn)
函数按特定分隔符delimiterIn,跳过头headerlinesIn行读取数据,这两个参数默认可以缺省。
这里特别要讲一组方便的文本批量读写操作函数(Read/Write matrix from/to ASCII-delimited file),也即dlmread和dlmwrite。
dlmread基本用法:
M = dlmread(filename) % 直接读取一个数值文本文件
M = dlmread(filename,delimiter) % 按特定分隔符读取一个文件
M = dlmread(filename,delimiter,R1,C1) % 从指定行列读取文件,通常可以用这种方式提过字符行
M = dlmread(filename,delimiter,[R1 C1 R2 C2]) % 读取指定行列区间的数据