字符串的txt到单元格数组中

时间:2014-06-05 14:28:57

标签: string matlab file

我有一个巨大的txt,每行中有一些用空格分隔的字符串。每行可能有不同数量的字符串。

示例:

row1 str1 str2 str3 str4
row2 str1
row3 str1 str2 str3

我试图将此文件不是从命令行导入到单元格数组中,但它非常慢。我们可以用命令行吗?它会更快吗?

感谢。

1 个答案:

答案 0 :(得分:2)

获取列单元格数组中的所有字符串

fid = fopen('filename.txt');
s = textscan(fid,'%s');
s = s{1};

对于您的示例,这将返回以下11x1单元格数组:

s = 
    'row1'
    'str1'
    'str2'
    'str3'
    'str4'
    'row2'
    'str1'
    'row3'
    'str1'
    'str2'
    'str3'

获取单元格数组的单元格数组中的所有字符串,保留列数

A = importdata('tmp.txt');
s = cell(numel(A),1);
for n = 1:numel(A)
    s{n} = regexp(A{n}, ' ', 'split')
end

给出

s = 
    {1x5 cell}    {1x2 cell}    {1x4 cell}

这样

s{1}
ans = 
    'row1'    'str1'    'str2'    'str3'    'str4'