Matlab:使用Textscan从ftp站点下载的.txt文件中获取信息

时间:2016-11-08 14:15:06

标签: matlab textscan

我正在编写一个给定文件夹路径的函数,将从此URL下载所有FTP文件(在Chrome中打开),并且还将返回包含这些文件信息的结构或单元格数组。

到目前为止,我对大多数文件没有任何问题,但是那些拥有大量数据行的文件给我带来了麻烦(例如,'british.txt')。我无法从2000行及以上的文件中读取数据。对于那些较短的文件,我没有问题。

我的函数中使用文本扫描的相关部分是:

list_txt=dir('*.txt'); %After downloading the files, I list them by its extension.
txt_data=cell(numel(list_txt),8); %pre-allocation of cell array that will store all the info I need from the loop.
for kk=1:numel(list_txt)
    fid=fopen(list_txt(kk).name,'rt');
    txt_single=textscan(fid,'%s %s %s %s %s %f %f %s','Delimiter','|','headerLines', 2);
    fclose(fid);

    [m2,n2]=size(txt_single{1,1});

    for jj=1:n2
        txt_single{1,n2}(m2)=[]; %I want to get rid of the last row that says #EOF   
    end
    txt_data(kk,1:8)=txt_single; %I go and store information of every file per row in this cell array

end

现在,我看到了这个post并尝试了一些方法,但我无法从中得到任何结果,也许我做错了。

如果有人可以帮我解决这个问题,我会很高兴的。

编辑:

Outcome of matlab function and cell array that it returns

有些文件没有完整阅读(英国,美国,瑞典和其他几个)。

所以我尝试在命令窗口中执行操作,使用此代码,比方说'british.txt':

blockSize=1000;
fid=fopen('british.txt','rt');
txt_single=textscan(fid,'%s %s %s %s %s %f %f %s',blockSize,'Delimiter','|','headerLines', 2);
fclose(fid);

结果甚至没有达到我想要的水平,即读取大约2000行信息​​。

Trying to read 1000 lines of the file without success

0 个答案:

没有答案