我正在阅读数据表格标签分隔文件:
str1 = '1 3'
str2 = '4 5 6'
在' str1' 第二位是空的。我在matlab中逐行阅读,然后使用strsplit,我从每一行中提取值,之后,我正在构建数组。文本中的每一列对应于每个数组。
strsplit(str1, '\t')
yeilds ==> '1 3'
strsplit(str2, '\t')
yeilds ==> '4 5 6'
不知何故,我想念第一个字符串中的第二个位置是空的。我该如何保存这些信息?
答案 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