Downloading data from txt file

조회 수: 17 (최근 30일)
Jesus Christian
Jesus Christian 2017년 10월 24일
댓글: Cedric 2017년 10월 26일
I was trying to download data from txt file using the importdata function however it downloads it into a structure with cell arrays in it. this is the code I am using. I need this data in a matrix of doubles if possible but it won't work.
delimiterIn = ' ';
[DataStructure] = importdata('iss.txt',delimiterIn);
DataCells = DataStructure(1).textdata(:,:);
This is a sample of what the txt file has inside:
1 25544U 98067A 16001.21631944 .00005382 00000-0 85171-4 0 9992
2 25544 51.6436 175.7680 0008248 349.1433 350.2600 15.55191287978846
1 25544U 98067A 16001.28471065 .00005383 00000-0 85187-4 0 9993
2 25544 51.6436 175.4264 0008246 349.3894 13.1693 15.55192096978860
1 25544U 98067A 16001.49479696 .00005567 00000-0 87829-4 0 9993
2 25544 51.6434 174.3772 0008262 350.0277 109.5268 15.55195766978890
1 25544U 98067A 16001.49479696 .00005567 00000-0 87829-4 0 9993
2 25544 51.6434 174.3772 0008262 350.0277 109.5268 15.55195766978890
.
.
.
  댓글 수: 2
Cedric
Cedric 2017년 10월 24일
편집: Cedric 2017년 10월 24일
Which data do you need? What about the ones with letters/dashes? Do you want to discard them, to extract them in a separate array, ..? They have 9 columns actually, whereas the others have 8.
Jesus Christian
Jesus Christian 2017년 10월 25일
I need the entire bottom row of every set in one array of 8 elements (i.e. the rows with a 2 as first element)
I also need the top row (rows with 1 as a first element) but only the elements without letters
Basically, I need all the elements on each row that don't have letters.

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

답변 (1개)

Cedric
Cedric 2017년 10월 25일
편집: Cedric 2017년 10월 25일
Here is one way:
data = textscan( fileread( 'data.txt' ), '%s' ) ;
data = reshape( str2double( data{1} ), 17, [] ).' ;
data = data(:,~isnan( data(1,:))) ;
Then it is possible to split into two blocks if you prefer, for rows "1" and rows "2".
PS: it would be possible to extract non-numeric data as well if you needed.
  댓글 수: 6
Walter Roberson
Walter Roberson 2017년 10월 26일
Looks to me as if possibly some of the fields are fixed width -- that perhaps none of the lines are only 8 fields and instead the fields are running together. If so, then that second last field can be handled with %.12f
Cedric
Cedric 2017년 10월 26일
You have at least to understand the structure of the data that you are reading, and tell us if, as Walter suggests, there are 9 columns everywhere with fixed width or if it is something else. That must be documented somewhere, and especially the length of the last field.

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

카테고리

Help CenterFile Exchange에서 Text Data Preparation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by