如何在 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 中读取带有“/”和空格的分隔文件的主要内容,如果未能解决你的问题,请参考以下文章

matlab中textscan如何实现包含空格的格式读取?

正则表达式从带有空格分隔符和描述中的空格的行中读取发票行详细信息

Matlab 读取dat文件(包含几行多余文本,数据带有数字和字符串,且以逗号分隔)

如何在 C++ 中读取由空格分隔的字符串? [关闭]

如何在熊猫中读取具有空格分隔值的文件

使用 pandas.read_csv 读取带有空格的 CSV 文件作为千位分隔符