Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: Remove text from file of numerics
Replies: 4   Last Post: Aug 1, 2013 2:30 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
dpb

Posts: 7,876
Registered: 6/7/07
Re: Remove text from file of numerics
Posted: Aug 1, 2013 9:05 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 8/1/2013 2:09 AM, Phil Roberts wrote:
> dpb <none@non.net> wrote in message <ktbcad$qr0$1@speranza.aioe.org>...
>> On 7/31/2013 4:37 AM, Phil Roberts wrote:
>> > Hello,
>> >
>> > I have the following data within a text file:
>> >
>> > Cycle 1
>> > x y z
>> > 1 10 100
>> > 2 20 200
>> > 3 30 300
>> > 4 40 400
>> > 5 50 500
>> > 6 60 600
>> > 7 70 700
>> > 8 80 800
>> > 9 90 900
>> > 10 100 1000
>> >
>> > Cycle 2
>> > x y z
>> > 11 110 1100
>> > 12 120 1200
>> > 13 130 1300
>> > 14 140 1400
>> > 15 150 1500
>> > 16 160 1600
>> > 17 170 1700
>> > 18 180 1800
>> > 19 190 1900
>> > 20 200 2000
>> >
>> > Cycle 3
>> > x y z
>> > 21 210 2100
>> > 22 220 2200
>> > 23 230 2300
>> > 24 240 2400
>> > 25 250 2500
>> > 26 260 2600
>> > 27 270 2700
>> > 28 280 2800
>> > 29 290 2900
>> > 30 300 3000
>> >
>> > How do I read in this data so I just have a matrix of 30 x 3 without

>> the
>> > strings?
>>
>> doc textscan
>>
>> It'll read multiple calls from the same file and since it appears the
>> file is counted number of lines/cycle you can use 'headerline',2 once
>> then 3 thereafter (unless the blank line also begins the file, then
>> it's even simpler as there are 3 header lines for all cases). Repeat
>> until feof(fid)
>>
>> You'll get a cell array unfortunately, but you can the cast it to a
>> matrix w/ cell2mat.
>>
>> Other than that, just use fgetl() to read the headerlines and then
>> fscanf() to return the array data in a loop again until feof()
>>
>> --

>
> Hello,
>
> I am still a little unsure what you mean. I have used textscan and only
> the first block of data comes through; hence the script stops before
> reading the other two blocks of data.
>
> I have never used feof. Please can you help with some example code?


fid=fopen('filename','r');
while ~feof(fid)
l=fgetl(fid);
end

Unless you repeat the textscan() call for each block then you'll only
get one set, indeed, because the conversion on the numeric value will
fail when gets to the next header line.

You may have to play around some to discern just where it leaves the
record pointer to begin the subsequent scans...

--




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.