如何在 MATLAB 中读取带有“/”和空格的分隔文件
Posted
技术标签:
【中文标题】如何在 MATLAB 中读取带有“/”和空格的分隔文件【英文标题】:how to read delimited file with '/' and space in MATLAB 【发布时间】:2011-10-16 10:54:41 【问题描述】:我想在 MATLAB 中读取这个文件,该文件包含这些数据
1/1/2008 1110 98.5
1/2/2008 1110 99.5
1/3/2008 1110 96.5
1/4/2008 1110 32.5
1/5/2008 1110 8.56
1/6/2008 1110 48.5
应该分五列:
第一列是月份 第二列是日期 第三列是年份 第 4 列是 1110 第 5 列是最后一列【问题讨论】:
【参考方案1】:使用TEXTSCAN函数:
%# parse file (change the data types if necessary)
fid = fopen('file.dat','rt');
C = textscan(fid, '%d/%d/%d %d %f', 'Delimiter',' ');
fclose(fid);
%# put columns in separate variables
[dt_month,dt_day,dt_year,val1,val2] = deal(C:);
%# convert to serial date
dt = datenum(double(dt_year),double(dt_month),double(dt_day));
【讨论】:
谢谢 Amro 先生,我找到了我想要的答案:data = textscan(fid,'','delimiter','/\t') 这就是输出:1 6 2008 1110 48 如果你不指定格式化字符串,它会尝试读取浮点数%f
,你也可以像['/' '\t']
那样指定多个分隔符以上是关于如何在 MATLAB 中读取带有“/”和空格的分隔文件的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式从带有空格分隔符和描述中的空格的行中读取发票行详细信息