2017-07-03 92 views
0

我有有两种格式,我正在尝试扫描MATLABtextscan不同格式的数据

使用 textscan
1,2,3,four,five,6 
7,8,9,ten,eleven,12 

等数据,然后用格式的数据的另一个一堆如下

1,2,three,4 
5,6,seven,8 

我试图使用扫描

fid=fopen('data.txt');  
C=textscan(fid,'%f %f %f %s %s %f','delimiter',','); 
D=textscan(fid,'%f %f %s %f','delimiter',','); 

整个数据看看这个数据就像

1,2,3,four,five,6 
7,8,9,ten,eleven,12 

1,2,three,4 
5,6,seven,8 

不同格式的数据是由一个空行分离时,问题是C从第二表中获取数据也高达1,2-因此扰乱的D

格式如何停止textscan曾经遇到空行吗?

+0

默认情况下,'textscan'在遇到格式错误时停止并返回该行之前完成的所有操作。你想要的是读取所有内容,然后按2种格式进行过滤 – GameOfThrows

回答

0

你可能想看看matlab的可读表函数。 https://www.mathworks.com/help/matlab/ref/readtable.html

我已经使用这个函数来读取由逗号分隔的文件,该逗号包含文本和数字,其中textscan很难。然后可以将此表转换为单元阵列或矩阵,以进行任何您想要对其执行的处理。

+0

readtable()只返回我想要存储所有表格的最后一张表格! – maz