4

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

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

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

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

我注意到如果我将 ascii 文件转换为 dat 文件,一切都很好,但是我有很多文件(超过 100 个)需要处理。

我应该怎么办?

谢谢

4

3 回答 3

2

您可以使用将整个文件读入字符串fileread

text = fileread( filename );

然后你可以使用自己解析它regexp

于 2013-03-12T13:24:42.823 回答
1

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

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

这样我就得到了一个字符串单元格数组。如果您担心行号,可以使事情更容易处理。

于 2013-03-12T17:27:22.363 回答
0
[filename pathname] = uigetfile({'*.txt'}, 'Select File');
fullpathname = strcat (pathname, filename);
    A = importdata(fullpathname,'');
value =getfield(A, 'data');

好好享受!

于 2016-04-26T17:40:24.230 回答