如何在matlab中检测字符串中的两个选项卡

时间:2014-10-24 14:27:41

标签: matlab

我正在阅读数据表格标签分隔文件:

str1 = '1  3'
str2 = '4 5 6'

' str1' 第二位是空的。我在matlab中逐行阅读,然后使用strsplit,我从每一行中提取值,之后,我正在构建数组。文本中的每一列对应于每个数组。

strsplit(str1, '\t')
yeilds ==> '1 3'
strsplit(str2, '\t')
yeilds ==> '4 5 6'

不知何故,我想念第一个字符串中的第二个位置是空的。我该如何保存这些信息?

2 个答案:

答案 0 :(得分:3)

尝试使用正则表达式:

str1 = '1  3'

numel(regexp(str1, '\t'))  % look for the number of elements of the regular expression that looks for tabs '\t'

将返回2

对于您的问题,您可以执行以下操作:

tmp = regexp(str1, '(\d*)\t(\d*)\t(\d*)', 'tokens')

tmp{1} 
        = 
        '1' '' '3' 

答案 1 :(得分:1)

Matlab内置支持读取制表符分隔文件:

A = importdata('file.txt', '\t')

如果您的文件如下所示:

1\t2\t3
4\t\t5

importdata收益:

A =

    1     2     3
    4   NaN     5