我有一个名为xMat.txt
的文本文件,在一行中有200个空格分隔的元素,有767行。
这就是xMat.txt
的样子。
386.0 386.0 388.0 394.0 402.0 413.0 ... .0 800.0 799.0 796
801.0 799.0 799.0 802.0 802.0 80 ... 399.0 397.0 394.0 391
.
.
.
当我尝试使用X = dlmread('xMat.txt',' ')
以八度音程读取文件时,我得到一个大小为767 X 610
的矩阵。我期待一个大小为767 X 200
的矩阵,因为一行中有200个元素。我该如何解决这个问题?
修改 - This is my file
答案 0 :(得分:1)
您上传的文件https://bpaste.net/raw/96cf21aa21b8每行的列数不相同。
$ awk "{print NF}" tmp | sort | uniq -c
2 200
754 201
1 206
1 217
1 223
1 234
1 237
1 238
1 269
1 273
1 390
1 420
1 610
所以大多数行有201列,但一列有420列,一列甚至有610列。这就是你从dlmread获得767x610矩阵的原因。
让我们看看哪些行有超过201列:
$ awk "{if (NF>201) print NR, NF}" tmp
68 217
580 206
613 390
615 234
657 273
676 610
679 237
720 269
722 238
743 223
762 420
第一个coloumn显示行号,第二列数。 所以你的610行的行是676行。我打印第676行:
所以你看它确实包含数据,没有多个空格,这些空格都是零填充。