How to use textscan to read data with missing values?
显示 更早的评论
I found it is not possible to use textscan to import a .txt file while the data itself contains missing values.
So for example, I have a test.txt, where * represents missing data(empty) and the delimiter is just whitespace:
1 2 3 4
5 6 A *
7 8 A *
9 * * 10
Is there any exports can help me?? Thanks a lot!
采纳的回答
更多回答(2 个)
the cyclist
2011-6-5
0 个投票
There is a file in the FEX called "readtext" that should handle this situation:
Zoe
2011-6-6
0 个投票
4 个评论
Jan
2011-6-6
"textscan('1 3 4', '%f%f%f%f', 'Delimiter', ' ', 'EmptyValue', Inf)" replies {1,2,Inf,4}.
Jan
2011-6-6
"textscan('1<space>3<space><space>4', '%f%f%f%f', 'Delimiter', ' ', 'EmptyValue', Inf)" replies {1,2,Inf,4}. The "<space>" is needed, because the command parser eats double spaces.
Zoe
2011-6-12
Christopher Conatser
2016-9-27
To extend this question further...I have a similar problem, but the (utterly malicious!) text export function for my instrument also has an irregular number of spaces between different columns, and they also vary depending on number of significant figures. Jan, do you (or anyone else) have any suggestions for dealing with it?
Sample tables (already cleaned up considerably):
SAMPLE BOTTLE TIME SOURCE ERROR LIQUID
------- ------ ---- -- -- ------
1,10 1 15:38 F 320
2,10 1 15:42 F 306
3,10 1 15:48 F 310
SAMPLE BOTTLE TIME SOURCE ERROR LIQUID
------- ------ ---- -- -- ------
1,5 13 22:41 F 198
2,5 13 23:35 F NM *
3,5 13 00:40 F NM *
4,5 13 01:04 F 196
No matter what I've tried (tab delimiter, space delimiter, multispace literals in the formatSpec, setting 'MultipleDelimsAsOne' to false,...) everything skips the "ERROR" column when it is empty.
formatSpec = ' %f,%*f %f %{HH:mm}D %s %s %f';
Thanks for your help!
类别
在 帮助中心 和 File Exchange 中查找有关 Standard File Formats 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!