将文本文件扫描到Matlab中

时间:2016-06-30 08:08:05

标签: matlab textscan

我有一个文本文件,我想导入到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但它仍然无法正常工作。请帮忙!

2 个答案:

答案 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')
相关问题