在matlab中读取具有可变条目数的文本文件

时间:2018-08-24 11:55:29

标签: matlab file

我有一个类似于以下示例的文本文件

1 12 34
67 56 78 98 98
...

基本上是数字行,但是行大小不是固定的。 有没有一种快速的方法可以在Matlab中读取内容并将其存储在单元格数组中?

2 个答案:

答案 0 :(得分:2)

importdata会读取您的文件,并用可用的NaN填充空白。

或者您直接解析文件:

str = fileread('file.txt'); %read your file into a string
data = cellfun(@(line) cellfun(@str2double, strsplit(line, ' '), 'UniformOutput', false), strsplit(str, '\r\n'), 'UniformOutput', false);

strsplit在return语句处分割->第一个单元格数组

使用这些单元格数组作为输入,并按空间对其进行拆分。

data = cellfun(@(line) str2double(strsplit(line, ' ')), strsplit(str, '\r\n'), 'UniformOutput', false);

您也可以使用str2double将单元格数组直接转换为数字,但是它将是普通数组,这意味着访问将是数据{1}(2)而不是数据{1} {2 },我希望样式保持一致。

答案 1 :(得分:0)

尝试textscan

str = fopen('test.txt');
data = textscan(str,'%s','Delimiter','\n');
%data = textscan(str,'%f');
fclose(str);