필터 지우기
필터 지우기

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

조회 수: 2 (최근 30일)
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
dpb
dpb 2017년 5월 4일
Only way to do that with textscan would be to have a complete list of the strings contained in the file.

댓글을 달려면 로그인하십시오.

답변 (1개)

dpb
dpb 2017년 5월 4일
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
Ziad Sliti
Ziad Sliti 2017년 5월 5일
편집: Ziad Sliti 2017년 5월 5일
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 2017년 5월 5일
편집: dpb 2017년 5월 5일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Large Files and Big Data에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by