reding specific elements from .txt file

1 visualizzazione (ultimi 30 giorni)
Nikhil CD
Nikhil CD il 21 Set 2011
Hi
I want to read specific elements from .txt file. I am reading data from several files and they are having different no. of rows but same no. of columns. I want to read all the elements in 12th column and in rows which come after 10 the row.
So matrix which I am going to read will be a column matrix but of different length depending upon no. of rows in respective file.
  3 Commenti
Nikhil CD
Nikhil CD il 22 Set 2011
All are numbers, delimiter is comma(,).
For example( I am assuming data of 6 columns and 8 rows)
1,2.5,45,-5,3.25,0,13,6
2.5,86,25,-4,0,0,12.5,2
2.1,-5,1.5,2.3,0,0,2.45,25
1,2.5,45,-5,0,0,1.23,6
2.5,86,25,-4,0,0,2.5,2
2.1,-5,1.5,2.3,0,0,0.45,25
In above case I need elements: 1.23,2.5,0.45
But in other files no of rows may be different and accordingly no of elements will vary.( in data of 8*8 i will input 5 elements(starting from row4))
Nikhil CD
Nikhil CD il 22 Set 2011
Change in last sentence...(in data of 8*6 I will need elements 5 elements(starting from row4))

Accedi per commentare.

Risposta accettata

TAB
TAB il 23 Set 2011
ReadCol=7;
ReadStartRow=4;
fh=fopen('test.txt');
txtcell=textscan(fh,'%s','delimiter','\n');
RowInFile=length(txtcell{1});
if(RowInFile<ReadStartRow)
error('No of rows in text file are less than as expected by you.');
end
MyData=zeros(RowInFile-ReadStartRow+1,1);
R=1;
for ro=ReadStartRow:RowInFile
Arr=cell2mat(textscan(txtcell{1}{ro},'%f','delimiter',','))';
Mydata(R,1)=Arr(ReadCol);
R=R+1;
end

Più risposte (1)

TAB
TAB il 22 Set 2011
StartRow=1;
EndRow=6;
StartCol=1;
EndCol=8;
if(StartRow>EndRow || StartCol>EndCol || any([StartRow EndRow StartCol EndCol]==0))
error('Indexing Error');
end
fh=fopen('YourFile.txt');
txtcell=textscan(fh,'%s','delimiter','\n');
if(length(txtcell{1})<EndRow)
error('No of rows in text file are less than as expected by you.');
end
R=1;
MyData=zeros(EndRow-StartRow+1,EndCol-StartCol+1);
for i=StartRow:EndRow
Arr=cell2mat(textscan(txtcell{1}{i},'%f','delimiter',','))';
Mydata(R,:)=Arr(1,StartCol:EndCol);
R=R+1;
end
  3 Commenti
TAB
TAB il 23 Set 2011
Sorry for misunderstanding your need.
Please see my next answer.
I am again confused, either you want to read 7th column or 6th column. I am considering it 7th.
Nikhil CD
Nikhil CD il 26 Set 2011
Yes. Its Ok..I got your logic. I can do further changes needed.
Thank you for your answer.

Accedi per commentare.

Categorie

Scopri di più su Data Import and Analysis in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by