【发布时间】:2014-09-22 02:53:01
【问题描述】:
我正在尝试使用 textscan 从文本文件中导入数据。数据有几个分隔符(冒号和空格)。我想将数据导入一个有 137 列的矩阵。下面是两行数据及其格式。
2 id:1 1:3 2:3 3:0 4:0 5:3 6:1 7:1 8:0 9:0 10:1 11:156 12:4 13:0 14:7 15:167 16:6.931275 17:22.076928 18:19.673353...134:1 135:0 136:2
9 id:2 1:4 2:3 3:1 4:5 5:3 6:4 7:2 8:0 9:0 10:1 11:16 12:42 13:0 14:7 15:167 16:5.7 17:1 18:3...134:2 135:6 136:3
这样有 50 行,所以最后我想要一个 50 x 136 的矩阵。我想在冒号之后和空格之前获取值,从 1(1:3 和 1:4)开始到 136(136:2 和 136:3)。下面是我正在尝试的代码。我一直在尝试发布一些我在做一些研究时发现的代码。我一直在阅读有关 repmat 的规范,似乎这只会产生一个 1 x 136 矩阵。
fid = fopen('./train.txt','r');
fmt = ['%f' repmat('%*f:%f', 1, 136)];
c = textscan(fid, fmt, 'CollectOutput', 1)
提前致谢,非常感谢任何帮助。
【问题讨论】: