2016-06-15 2 views
0

텍스트 파일의 이름은 xMat.txt이며 한 줄에 약 200 개의 공백으로 구분 된 요소와 767 개의 줄이 있습니다.옥타브의 텍스트 파일을 읽는 중 오류가 발생했습니다.

이것은 xMat.txt의 모습입니다. 내가 X = dlmread('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 
. 
. 
. 

나는 크기 767 X 610의 행렬을 얻는다. 한 행에 200 개의 요소가 있으므로 크기가 767 X 200 인 행렬을 기대합니다. 이 문제를 어떻게 해결할 수 있습니까?

편집 - This is my file

+0

'X '의 내용을 조사 했습니까? 이것은 당신에게 몇 가지 힌트를 줄 것입니다. 나는 당신이 당신의 파일에 많은 추가적인 공간을 가지고 있다고 생각할 것이다. – Bernhard

+0

나는 킥을 주었고 추가 공간이 필요하지 않았습니다. –

+0

'X (1,2) '에 무엇이 있습니까? 사이드 노트 :'textscan'을 사용하여 파일을 가져 오는 방법을 훨씬 더 잘 제어 할 수 있습니다. – BillBokeey

답변

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 행렬을 얻는 이유입니다.

$ 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는 행 번호, 열 번호 제 보여준다

라인 이상 201 개 컬럼이있는 볼 수 있습니다.

line 676

그래서 당신이 정말 데이터를 제로로 FILLES에 상관 여러 개의 공백이 포함 된 참조 : 그래서 610 개 항목을 사용하여 라인은 I 라인에게 676 인쇄 끄트머리 행 번호 676입니다.

관련 문제