2014-12-02 110 views
0

我对形式的.out文件(.txt):阅读txt文件到MATLAB矩阵

This is a text file 
This file was created by Andrew on 4/5/14 

Certificate Result Test #12 

Time  A  B  C  D  
50  4  3  8  9 
55  4  8  7  4 
60  8  4  1  4 
65  7  1  5  1 
70  4  2  2  2 

如何读取表中的数字为一个矩阵,称为M,在MATLAB在开始时忽略所有文本?

我尝试过使用fscan和M = dlmread(filename),但我收到错误,说文件和格式字符串之间由于开头的文本行不匹配。

在此先感谢

+1

欢迎来到SO,并感谢您为您的问题提供一个示例。如果你尝试过不同的方法,比如'fscan'或'dlmread',请将它们加入你的文章中。该解决方案可能很容易修复您的代码,而不必从头开始编写一些东西。作为指针,您还可以查看[textscan](http://uk.mathworks.com/help/matlab/ref/textscan.html)命令并查看HeaderLines参数。 – Hoki 2014-12-02 16:43:29

回答

0

使用textscan'HeaderLines'选项:

fid = fopen('my_file.out'); % or whatever your file is called 
M = textscan(fid,'%d %d %d %d %d','HeaderLines',7); % using int32 data types, change as required 
fclose(fid) 

注意M是一个单元阵列

0

textscan是一个强大的工具,具有良好的低级别的功能。还有一个更方便的“IMPORTDATA”,这适用于这样的许多文件:

m = importdata('my.txt', ' ', 6) 
m = 

     data: [5x5 double] 
    textdata: {6x5 cell} 
colheaders: {'Time' 'A' 'B' 'C' 'D'} 

正如你所看到的,它不仅返回m.data的数据,但你也可以免费获得该列标题。