textscan, problem with the treatasempty when the is the signal minus (-)
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Ricardo MF
el 30 de Oct. de 2013
I have a problem to get this .tsv file (below) in. The character chosen by the Economic Institute as the empty value was the signal minus (-). When I use the function textscan and define the Treatasempty with '-' I wrongly damage the items with negative values.
my function request is:
a=textscan(fid,'%s%s%s%n%n%n%n%n%n%n%n%n%n%n%n','delimiter',',','headerlines',4,'ReturnOnError',1,'treatAsEmpty',{'-'});%
Can anybody help me?
headline1
headline2
headline3
headline4
Índice base fixa com ajuste sazonal (2011=100) (Número índice),"Tecidos, vestuário e calçados",103.17,-99.69,99.64,101.25,102.79,-104.80,105.25,104.64,104.85,102.74,104.85,105.47
Índice base fixa com ajuste sazonal (2011=100) (Número índice),"Móveis e eletrodomésticos",108.69,109.91,110.48,111.66,108.12,113.13,112.44,113.57,111.46,113.69,113.32,116.62
Índice base fixa com ajuste sazonal (2011=100) (Número índice),"Móveis",-,-,-,-,-,-,-,-,-,-,-,-
1 comentario
Respuesta aceptada
Cedric
el 30 de Oct. de 2013
Editada: Cedric
el 30 de Oct. de 2013
Here is a proposal that I can refine when/if you attach a file to your question:
content = fileread( 'myFile.tsv' ) ;
content = regexprep( content, '-(,|$)', ',' ) ;
data = textscan( content, '%s%s%s%n%n%n%n%n%n%n%n%n%n%n%n', ...
'Delimiter', ',', 'HeaderLines', 4, 'ReturnOnError', 1 ) ;
The idea is to eliminate minus signs which are before a comma or at the end of the file, before using TEXTSCAN.
0 comentarios
Más respuestas (1)
Ricardo MF
el 30 de Oct. de 2013
1 comentario
Cedric
el 30 de Oct. de 2013
Editada: Cedric
el 30 de Oct. de 2013
Dear Ricardo, please perform the following update: change the call to REGEXPREP for..
content = regexprep( buffer, '-(?=[,\r\n]|$)', ',' ) ;
As I didn't have your file I tried on a one line string, and, as you pointed out, I forgot to implement the pattern for the end of line. Let me know if it is too slow; there are other patterns which could apply and it's difficult to know in advance which are faster. If it doesn't work still, feel free to send me the file or a chunk of it so I can perform tests.
Ver también
Categorías
Más información sobre Get Started with Signal Processing Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!