将.text数据读取到Matlab

时间:2014-08-21 12:57:28

标签: matlab import text-files

我正在尝试从此.txt中读取数据:

obiekt.DEF


Timeplot
Column01: P abs h01 L1 [W]
Column02: P abs h01 L2 [W]
Column03: P abs h01 L3 [W]
Column04: P abs h01 Sum [W]

Time                         Column01    Column02    Column03    Column04
11.03.2004 09:17:02              23500       19812       21529    64,84e+3
11.03.2004 09:17:05              23316       19789       21519    64,62e+3
11.03.2004 09:17:08              23207       19759       21392    64,36e+3

我只需要列中的数据:01,02,03。有些数据有','而不是'。'。怎么改呢?我有很多像这样的文件。我尝试了这个函数,但它将所有数据写入一个变量。

b=textread('test.txt','%s','delimiter',' ','whitespace',' ');

1 个答案:

答案 0 :(得分:1)

您可以使用textscan:

filename='myfile.txt';
fid=fopen(filename,'r');
data=textscan(fid,'%*s%*s%s%s%s%*s','HeaderLines',10,'CollectOutput',1);
fclose(fid);
data=strrep(data{1},',','.');
data=cellfun(@str2num, data);

设置HeaderLines设置要忽略的前10行。设置CollectOutput将相同类型的项目分组到一个单元格数组中(因此我们得到3列字符串)。 formatspec '%*s%*s%s%s%s%*s'忽略日期,时间和Column04,并将Column01-03转换为字符串。然后strrep用句点替换逗号。 cellfun在每个单元格上调用str2num并将字符串转换为数字。