Downloading data from txt file

16 次查看(过去 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 中查找有关 Large Files and Big Data 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by