2014-10-07 74 views
0

我需要读取一个txt数据集并通过matlab做一些分析。 txt文件的结构是这样的:将矩阵结构中的txt数据集加载到matlab中

ID流派AgeScale 1M的20-26

2 F 18-25

因此,我希望加载这个txt文件并建立一个矩阵。我想知道是否有人可以帮助我。我使用fopen函数,但它给了我一个单独的数组而不是一个有3列的矩阵。

+0

您是否试过['readtable'](http://www.mathworks.com/help/matlab/ref/readtable.html)函数? – Dan 2014-10-07 12:05:59

回答

0

MATLAB有一个交互式数据导入器。只需在命令窗口中键入uiimport。它允许你:

  • 根据标题命名变量,如示例中所示。您也可以手动更改它们。
  • 指定变量(列)类型,例如数字,字符串单元阵列,等
  • 自动生成下次使用的导入脚本(如果需要)

如果它为你工作那么恭喜你,你不需要浪费时间写一个数据导入脚本:)

+0

你是国王。非常感谢你亲爱的XMO。 – HimanAB 2014-10-08 14:21:24

+0

非常欢迎:)如果您觉得您的问题已解决,您可以将此答案标记为可接受。这完全取决于你。 – xmo 2014-10-08 15:03:08

0

函数fopen只返回文件ID而不返回文件的内容。打开文件后,使用文件ID逐行读取,然后使用空格作为分隔符分隔每行strsplit

这里是这样做的一个简单的方法:

fid = fopen('textfile.txt'); 

tline = fgetl(fid); 
n = 1; 
while ischar(tline)   
    data(n,:) = strsplit(tline(1:end-1),' '); 
    n=n+1; 
    tline = fgetl(fid); 
end 

fclose(fid); 

请记住,矩阵数据类型为字符串,而不是数字,所以如果你想使用你的数据集的数值,你”我们需要看看函数str2numstr2double in newer versions)和strtok用分隔符' - '分割AgeScale字符串。