载入txt.file到matlab中

我希望有人能帮助我解决这个问题:

我需要加载一个txt.file到matlab中。 txt.file看起来像这样:

1 80 1 . 32 1.374 1 0 . 0 

它包含38个variables和11,674个观察值(我知道这是因为我已经成功地将数据加载到STATA中)。 '' 缺less值。 我使用下面的代码:

 data = textread('data.txt','','delimiter','.','emptyvalue',NaN); 

这不会给我任何错误。 但是,结果数据只包含11674行和12列。 当将matlab中的数据与文本文件进行比较时,似乎matlab只读取文本文件的第一个四分之一。

我也试图加载数据到STATA,导出到Excel,然后使用:

 data = xlsread('data.xls','Sheet1'); 

这不工作,因为我没有窗户。 Matlab报告错误:

 Warning: Could not start Excel server for import, 'basic' mode will be used. Error using xlsread (line 232) XLSREAD unable to read sheet Sheet1. Error reading record for cells starting at column 0. Try saving as Excel 98. 

如果您需要更多信息,请告诉我。

感谢您的时间!

txt2mat [1]应该解决你的问题。 如果使用“块”读取模式,它也比纯文本读取方法快得多。

你可以用NaN填充无法识别的(如空单元格),然后检测这些。

或者,您可以在文件导入过程中replace点:

 DATA = txt2mat(filename, 'ReplaceChar', '. '); 

[1] http://www.mathworks.com/matlabcentral/fileexchange/18430-txt2mat

如果我没有弄错的话. 不是分隔符。 你可以做些什么来摆脱. 在你的文件(这是造成这个问题)是用NaNreplace它,或者如果你不能,在之后:

 str = fileread('data.txt'); data_str = strrep(str, ' . ', ' NaN '); 

注意之前和之后的两个空白空间.NaN

那么你可以使用textread或其他任何标准的数据读取function。

希望能帮助到你。