Importing specific blocks of rows from file

조회 수: 3 (최근 30일)
Gabriel Cortes
Gabriel Cortes 2017년 7월 3일
댓글: Gabriel Cortes 2017년 7월 4일
Hi - I am trying to import data that is distributed like this:
$ [marker]
[data, 12 columns, ~200k rows] ==> this is the data i want to import after the marker
[variable number of columns and rows]
$ [marker] -- Begins another set or Block
[data, 12 columns, ~200k rows] ==> this is the data i want to import after the marker
[variable number of columns and rows]
================================================ This is a sample of the Data
$ 33, 1.000000e+02 ================>> [marker, ID, Timestep]
2.16774183865960e+03, 2.17155003512612e+03, 2.16743573002462e+03, 2.16360580614394e+03, 2.16346774309583e+03, 2.16053340274031e+03, 2.16167864768523e+03, 2.15753149798806e+03, 2.15897246203298e+03, 2.15326408153715e+03, 2.15120660138186e+03, 2.14757146384007e+03,
2.14513985262235e+03, 2.13873969626383e+03, 2.14152811665221e+03, 2.13484192927493e+03, 2.13228154897046e+03, 2.12820999931608e+03, 2.12566138709717e+03, 2.12126497354156e+03, 2.12263910079983e+03, 2.11778548748744e+03, 2.11746577100915e+03, 2.11491733662709e+03,
I tried using 'textscan' but it only imports the first block of ~200k rows, how can I have it move to the next block ?
Dac = fopen('Rat10m_sat_asc3h2.txt','r');
hDat = textscan(Dac,'%f %f %f %f %f %f %f %f %f %f %f %f','Delimiter',',');
thanks for comments, G

답변 (1개)

Anushi1998
Anushi1998 2017년 7월 4일
You can import the whole file and make an another variable by selecting only specific rows
file=importdata('file_name.txt');
rows=[...] %desired rows
cnt=10
for ii=1:length(rows)
cnt=cnt+1;
data(cnt,:)=file(rows(ii),:);
end
For more help and tutorials refer MATLAB Helper
  댓글 수: 1
Gabriel Cortes
Gabriel Cortes 2017년 7월 4일
Thank you Anushi for response. For this code I would have to identify the beginning and end of each block, which makes it cumbersome. I am looking for a more automatic solution, one that identifies the marker [$] and import fix number of rows below it, skipping the following [not-fixed number of] rows until the next marker comes along in the file. regards,

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

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by