使用可变大小的行读取数据文件

时间:2014-05-20 21:18:38

标签: matlab text-processing cell-array

我有一个包含可变大小行的数据文件:

16 54 1 -3 5
15 5
1 9 10 5

如何将其加载到单元格数组中以便

data{1} = [16 54 1 -3 5]; 
data{2} = [15 5]; 
data{3} = [1 9 10 5];

2 个答案:

答案 0 :(得分:2)

data.txt包含

16 54 1 -3 5
15 5
1 9 10 5

您可以使用以下内容将其读入单元格数组:

fid = fopen('datatest.txt');
allData = textscan(fid,'%s','Delimiter','\n');
data = cellfun(@str2num, allData{1}, 'UniformOutput', false);
fclose(fid);

>> data = 

ans =    

[1x5 double]
[1x2 double]
[1x4 double]

>> data{1}

ans =

    16    54     1    -3     5

答案 1 :(得分:2)

您可以尝试简短明了的 impordata appproach -

%// Assuming filepath1 is the path to your file
data = cellfun(@str2num,importdata(filepath1,'%s'),'uni',0)

您可以使用displays contents of a cell array的{​​strong> celldisp 工具直观地显示数据,例如celldisp(data)。输出将是 -

data{1} = 
    16    54     1    -3     5

data{2} =
    15     5

data{3} = 
     1     9    10     5