Problems with empty cell in a large matrix

조회 수: 2 (최근 30일)
Poulomi Ganguli
Poulomi Ganguli 2019년 3월 20일
댓글: Peter Perkins 2019년 8월 30일
Hello:
I have a large matrix of 102730 rows in the form of text file (sample text file is attached) with some header files in it. The first column show year, the next the month, followed by the day, and value1, value2 and value 3. Some of the cells are missing/empty. I want to fill these empty cells with NaN, so that they don't interefere with the next value. I am also attaching the text files of sample input (sample.txt) and desired output (Output.txt) for your reference.
Could anyone please let me know how to retrieve data?

채택된 답변

Peter Perkins
Peter Perkins 2019년 8월 28일
You have a fixed-width file, and readtable needs to be told how it's organized, using fixedWidthImportOptions:
>> opts = fixedWidthImportOptions('NumVariables',7,...
'DataLines',2,...
'VariableNames',["Ind" "Mo" "dy" "V1" "V2" "AW" "X"],...
'VariableWidths',[5 3 4 6 5 3 5],...
'VariableTypes',repmat("double",1,7));
>> T = readtable('sample.txt',opts)
T =
17×7 table
Ind Mo dy V1 V2 AW X
____ __ __ ____ ____ ___ ____
1974 6 28 39.2 25.6 3 0
1974 6 29 41.2 30.5 5 0
1974 6 30 40.3 31.2 7 0
1974 7 1 41.3 31.5 12 0
1974 7 2 43.3 31.3 20 0
1974 7 3 41.2 NaN 16 41.6
1974 7 4 34.3 21.4 14 54.5
1974 7 5 33.1 23.8 5 0
1974 7 6 36.2 28.9 6 0
1975 4 18 36.6 20.8 12 0
1975 4 19 37.4 21.1 5 0
1975 4 20 39.9 27 7 0
1975 4 21 39.5 27.3 9 0
1975 4 22 NaN NaN NaN NaN
1975 4 23 39.5 27.1 8 0
1975 4 24 37.7 26 10 0
1975 4 25 38.7 27.2 15 0
  댓글 수: 4
Poulomi Ganguli
Poulomi Ganguli 2019년 8월 29일
Hi Peter:
I am getting this option is not available. So, I am unable to check this out.
Peter Perkins
Peter Perkins 2019년 8월 30일
Even though fixedWidthImportOptions was introduced in R2018b, you can try using detectImportOptions with file type 'fixedwidth'. Introduced in R2017a.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

KSSV
KSSV 2019년 3월 20일
편집: KSSV 2019년 3월 20일
Read about readtable. It will insert NaN's where ver values are missing.
T = readtable('sample.txt') ;
  댓글 수: 3
Peter Perkins
Peter Perkins 2019년 8월 28일
That happens because readtable treats the file as space-delimited, when in fact it is fixed-width format. See my response below.
madhan ravi
madhan ravi 2019년 8월 28일
Thank you Peter for the response :)

댓글을 달려면 로그인하십시오.


Poulomi Ganguli
Poulomi Ganguli 2019년 3월 20일
Same here. If there are changes in number of digits before decimal, its not working. For example, "sample2.txt"
  댓글 수: 1
madhan ravi
madhan ravi 2019년 3월 20일
Probably you would have to wait for others to shed some light here.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by