MATLAB,ASCII文件。 Textscan? IMPORTDATA?加载?它们都不起作用

时间:2013-03-12 13:03:07

标签: matlab ascii

我必须在MATLAB中导入ASCII文件然后读取它们。这些是我尝试过的功能:

1)load(filename)不起作用:它表示“ASCII文件第2行的列数必须与前一行相同”

2)textscan(file, '-ascii')返回类似“空单元格数组:1-by-0

”的内容

3)importdata(file)返回“data:[2x1 double],textdata:[4x1 cell],colheaders {'* LOS ='}。 它确实有效,正如georgesl所建议的那样,但它将全文视为一个唯一的列:如何跳过标题然后将数据拆分为2列?

如果我将ascii文件转换为dat文件,我注意到一切都没问题,但我有很多文件(超过100个)应该解决。

我该怎么办?

由于

3 个答案:

答案 0 :(得分:2)

您可以使用fileread

将整个文件读取为字符串
text = fileread( filename );

然后您可以使用regexp

自行解析

答案 1 :(得分:1)

我喜欢Shai提到的方法,但通常使用命令textscan

data = textscan(fid, '%s', 'Delimiter', '\n')

所以我最终得到了一个字符串的单元格数组。如果你担心行号,会使事情更容易处理。

答案 2 :(得分:0)

[filename pathname] = uigetfile({'*.txt'}, 'Select File');
fullpathname = strcat (pathname, filename);
    A = importdata(fullpathname,'');
value =getfield(A, 'data');

享受吧!