我知道fread
可用于读取二进制数据。我在某处读到它也可以读取文本文件。我有一个使用BCP
实用程序和SQL Server生成的数字文本文件。我试图在Matlab中读取这个庞大的数据。在我的情况下,textscan
和fscanf
速度很慢。 fread
读取数据并输出其ASCII值。有没有办法可以使用fread
正确读取数据?由于文本文件很大,fread
可以为我提供更快的解决方案。
BCP“SELECT 3,1 UNION ALL SELECT 9,13”queryout“Trial.txt”-c t“,” - S“srvr”-U“login”-P“pwrd”
%在Matlab中 - >
fid = fopen('Trial.txt','r') ;
fread(fid)
fclose(fid);
ASCII输出:
51 % Ascii Char for 3 (http://www.asciitable.com/)
44 % ...............,
49 % ...............1
13 % ...............carriage return
10
57
44
.......
答案 0 :(得分:0)
你试过这个:
s = regexp(fileread('Trial.txt'), '(\r\n|\n|\r)', 'split');
或者您可以使用:
fread(fid,'*char')
答案 1 :(得分:0)
你几乎拥有它。只需在char
之后使用fread
将读取的字节解释为ASCII字符。如果您想要行向量而不是列向量,还要添加.'
:
fid = fopen('Trial.txt','r');
chars = char(fread(fid)).';
fclose(fid);