我有一个文本文件,我想导入到matlab中。以下是文本文件的前两行(tempfile.txt):
1,"4/26/2016","6:40:00 PM","111","0","13.45","NaN","ACTIVE","NaN",
2,"4/26/2016","6:40:30 PM","73","0","14.99","NaN","ACTIVE","NaN",
当我尝试使用文本扫描时:
fid = fopen('tempfile.txt');
data = textscan(fid, '%*d %s %s %s %*d %*d %*d %*s %*s', 'Delimiter', ',')
它只导入文本文件的第一行。我已经尝试将\ n添加到formatSpec但它仍然无法正常工作。请帮忙!
答案 0 :(得分:1)
你的问题是你的所有字段都是双引号 - 即它们是字符串,你不能将它们解析为Floats / Doubles,而是将它们解析为字符串,然后将它们转换为Matlab中的Doubles:
data = textscan(fid, '%d %s %s %s %s %s %s %s %s', 'Delimiter', ',')
可以很好地解析数据,然后使用str2num
将数据转换回数字。为什么你的所有东西都有双引号?
============= EDIT ============
由于您只需要3个字段,因此您应该执行以下操作:
fid = fopen('abc1.txt');
data = textscan(fid, '%*d %s %s %s %*s %*s %*s %*s %*s', 'Delimiter', ',')
答案 1 :(得分:0)
似乎你有一个逗号分隔值CSV文件试试这个函数:
M = csvread('tempfile.txt')