将文本文件扫描到 Matlab 中
Scan text file into Matlab
我有一个文本文件要导入到 matlab 中。这是文本文件的前 2 行 (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 但它仍然不起作用。请帮忙!
您似乎有一个逗号分隔值 CSV 文件,试试这个函数:
M = csvread('tempfile.txt')
您的问题是您的所有字段都用双引号引起来 - 即它们是字符串,您不能将它们解析为 Floats/Doubles,而是将它们解析为字符串,然后在 Matlab 中将它们转换为 Doubles:
data = textscan(fid, '%d %s %s %s %s %s %s %s %s', 'Delimiter', ',')
可以很好地解析您的数据,然后使用 str2num
将您的数据转换回数字。为什么所有内容都用双引号引起来?
=============编辑============
因为你只需要 3 个字段,你应该这样做:
fid = fopen('abc1.txt');
data = textscan(fid, '%*d %s %s %s %*s %*s %*s %*s %*s', 'Delimiter', ',')
我有一个文本文件要导入到 matlab 中。这是文本文件的前 2 行 (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 但它仍然不起作用。请帮忙!
您似乎有一个逗号分隔值 CSV 文件,试试这个函数:
M = csvread('tempfile.txt')
您的问题是您的所有字段都用双引号引起来 - 即它们是字符串,您不能将它们解析为 Floats/Doubles,而是将它们解析为字符串,然后在 Matlab 中将它们转换为 Doubles:
data = textscan(fid, '%d %s %s %s %s %s %s %s %s', 'Delimiter', ',')
可以很好地解析您的数据,然后使用 str2num
将您的数据转换回数字。为什么所有内容都用双引号引起来?
=============编辑============
因为你只需要 3 个字段,你应该这样做:
fid = fopen('abc1.txt');
data = textscan(fid, '%*d %s %s %s %*s %*s %*s %*s %*s', 'Delimiter', ',')