我有一个类似于以下示例的文本文件
1 12 34
67 56 78 98 98
...
基本上是数字行,但是行大小不是固定的。 有没有一种快速的方法可以在Matlab中读取内容并将其存储在单元格数组中?
答案 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);