简体   繁体   中英

error reading a text file in octave

I have a text file named xMat.txt which has 200 space separated elements in one line and some 767 lines.

This is how xMat.txt looks.

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
.
.
.

When I try to read the file in octave using X = dlmread('xMat.txt',' ') I get a matrix of size 767 X 610 . I am expecting a matrix of size 767 X 200 since there are 200 elements in one row. How can I solve this problem?

Edit - This is my file

Your uploaded file https://bpaste.net/raw/96cf21aa21b8 has incosistent number of columns per row.

$ 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

So the most rows have 201 columns but one has 420 columns and one even has 610 columns. This is the reason you get a 767x610 matrix from dlmread.

Lets look which lines have more than 201 columns:

$ 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

The first coloumn shows the line number, the second number of columns. So your line with 610 columns is line number 676. I aslo printed line 676:

676行

so you see it really contains data, no multiple spaces which are filles with zeros.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM