[scilab-Users] weird problem with fscanfMat

Stéphane Mottelet stephane.mottelet at utc.fr
Wed Feb 9 16:12:27 CET 2011


Le 09/02/2011 11:41, Antoine Monmayrant a écrit :
> Le 09/02/2011 10:29, Stéphane Mottelet a écrit :
>> Le 09/02/2011 10:07, Antoine Monmayrant a écrit :
>>> Le 09/02/2011 09:26, Stéphane Mottelet a écrit :
>>>> Le 09/02/2011 09:24, Antoine Monmayrant a écrit :
>>>>> Le 08/02/2011 22:04, Stephane Mottelet a écrit :
>>>>>> Hi all,
>>>>>>
>>>>>> I cannot manage to read the attached file with
>>>>>> fscanfMat, although it has a compatible structure,
>>>>>> i.e. one line one text then many lines of the same
>>>>>> number of columns.
>>>>>>
>>>>>> I have even tried to read the first line with mgetl,
>>>>>> but then eof is reached although I only get the first line
>>>>>> (composed of text).
>>>>>>
>>>>>> I know each line is only finished with a cr and not
>>>>>> an eol. Is it a problem ?
>>>>>> Thanks for help of anybody willing to solve this
>>>>>> weird issue !!!
>>>>>>
>>>>>> S.
>>>>> When I open the file you attached to your email, I don't see any 
>>>>> separator to mark the end of line (no cr, no \n, no nothing).
>>>>> It might have been mangled by my mail program but I doubt it.
>>>>> I managed to open it in scilab with read_csv and it also looks 
>>>>> like there is no separator at the end of line: the last item of a 
>>>>> line is touching the first item on next line:
>>>>>
>>>>> -->a_string=read_csv("20101122_VOLUME.txt","\t");
>>>>>
>>>>> -->a_string(16)
>>>>> ans  =
>>>>>
>>>>>  ch15 (L)0.000
>>>>>
>>>>> -->a_string(31)
>>>>>  ans  =
>>>>>
>>>>>  0.0000.001
>>>>>
>>>>> -->a_string(46)
>>>>>  ans  =
>>>>>
>>>>>  0.0000.002
>>>>>
>>>>>
>>>>> Hope it helps,
>>>>>
>>>>> Antoine
>>>>>
>>>> Well, when I open it with vi, I see some ^M at the end of each line.
>>>>
>>>> S.
>>> I don't, so it has been mangled in the process.
>>> With :set list, I can see the column separator (^I), but nothing at 
>>> the end of line, the two adjacent items being merged...
>>>
>>> Antoine
>>> PS: I join your file back, can you check if it has been modified or 
>>> not?
>> The ^M are missing, you are right. I join the original
>> file (still unreadable with fscanfMat), but zipped in order
>> to preserve it.
>>
>> S.
> Got it!
> There is a problem with your file format.
> It might be a bug in fscanfMat, but I don't think as it is only 
> supposed to open files created with fprintfMat.
> As such, it does not handle the slightest deviation from the expect 
> format.

well, are files with a ^M instead of ^L  non-standard ?

S.

> Here is a way to correct things under linux:
>
> cat 20101122_VOLUME.txt | tr '\r' '\n' > corr_20101122_VOLUME.txt
>
> then in scilab you can load it:
>
> -->dat=fscanfMat("corr_20101122_VOLUME.txt");
>
> -->size(dat)
>  ans  =
>
>     291.    16.
>
> Antoine




More information about the users mailing list