Borrar filtros
Borrar filtros

How to replace all the strings of a csv file with NaN using textscan and "TreatAsEmpty" ?

2 visualizaciones (últimos 30 días)
I'm using textscan to read huge csv file.
Theses files contain numbers and strings.
How to replace all the string with NaN using "TreatAsEmpty" ?
The location of the strings depend on the file and the strings are different for each file.
For example a csv file like this :
1 3 5 6 temp 56 d 3
4 f 45 5 6 H 4 5
How to obtain that ?
1 3 5 6 NaN 56 NaN 3
4 NaN 45 5 6 NaN 4 5
Thank you for your help !
Best,
  1 comentario
dpb
dpb el 4 de Mayo de 2017
Only way to do that with textscan would be to have a complete list of the strings contained in the file.

Iniciar sesión para comentar.

Respuestas (1)

dpb
dpb el 4 de Mayo de 2017
OTOH,
>> fid=fopen('ziad.txt');
>> fmt=repmat('%s',1,8);
>> c=textscan(fid,fmt,'collectoutput',1);
>> fid=fclose(fid);
>> data=str2double(c{:})
data =
1 3 5 6 NaN 56 NaN 3
4 NaN 45 5 6 NaN 4 5
>>
  2 comentarios
Ziad Sliti
Ziad Sliti el 5 de Mayo de 2017
Editada: Ziad Sliti el 5 de Mayo de 2017
Hello,
Thank you for your answer.
But I work with big csv files (6000 rows 1000 columns) and it takes too many time to read all as string.
What about using "TreatasEmpty" option of textscan ?
dpb
dpb el 5 de Mayo de 2017
Editada: dpb el 5 de Mayo de 2017
That's not all that big; wouldn't think it too bad on time. What did it take?
As noted, you would have to have a complete list of all text fields in the file with an exact match for every one. Do you know that a priori?
I can't help but think even if did it wouldn't take quite a lot longer than the above.

Iniciar sesión para comentar.

Categorías

Más información sobre Large Files and Big Data en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by