1

我有一个类似于以下内容的 .dat 文件:

* ID=Minilog-T
* Serial Number=1328
* Study ID=Rostherne 2008
* Start Time=13-11-2008,14:23:14
* Finish Time=09-12-2009,13:01:53
* Sample Period=02:00:00
* Number of Deployments=9
* Date(dd-mm-yyyy),Time(hh:mm:ss),Celsius (°C)
13-11-2008,14:23:14,20.6
13-11-2008,16:23:14,15.3

我想将数据插入到我拥有的单元格数组中:

dat = {'13-11-2008','14:23:14','20.6';'13-11-2008','16:23:14','15.3'};

dat = 

    '13-11-2008'    '14:23:14'    '20.6'
    '13-11-2008'    '16:23:14'    '15.3'

我试过了:

fid = fopen(...);
dat = textscan(fid,'%s%s%s','headerlines',8);

但是,这会将所有内容导入到 3 个单独的单元格数组中,即它不采用与矩阵相同的格式。我该如何解决这个问题?

4

1 回答 1

4

问题是textscan将每个提取的列放在自己的单元格中,因此需要稍微不同的方法。

一种可能的方法是使用textscan提取相关行,然后使用 将每一行拆分为逗号分隔的字符串regexp

dat = textscan(fid, '%s', 'headerlines', 8, 'delimiter', '\n')
C = regexp(dat{1}, ',', 'split');
dat = vertcat(C{:})
于 2013-03-07T12:26:42.860 回答