【问题标题】:Matlab - data import with fixed numbers of columnsMatlab - 具有固定列数的数据导入
【发布时间】:2014-05-09 03:25:51
【问题描述】:

我有一个关于 Matlab 数据导入的(可能很简单)问题。我想导入一个巨大的数据集(~1GB),它的逗号分隔格式如下:

 08:05, 12, 33, 124, 13, 08:06, 22, 84, 12, 35, ..

每 5 个值是一个时间戳。我想用固定数量的列(5 列)导入它,但行尾没有分隔符。最后应该是这样的:

08:05  12  33  124  13
08:06  22  14  1    35
08:07  22  124 12   34
08:08  22  12  12   0

我想过用一个子例程替换每 5 个逗号,但这太耗时了。你知道更好的解决方案吗?我希望有一个不错的内置函数。

【问题讨论】:

    标签: matlab csv import


    【解决方案1】:

    您可以使用fscanf 和C 类型的格式字符串来完成此操作。例如:

    fid=fopen('filename.txt');
    A=reshape(fscanf(fid,'%d:%d, %d, %d, %d, %d, '),6,[])';
    fclose(fid);
    

    这会将您的答案存储在矩阵 A 中,该矩阵将包含

    A =
         8     5    12    33   124    13
         8     6    22    84    12    35
    

    如果您想将其格式化为您列出的字符串或输出文件,您可以使用:

    fprintf('%02d:%02d  %-3d %-3d %-3d %-3d\n',A')
    

    【讨论】:

    • @user2037819,如果这是您需要的,请考虑投票并接受答案,以便人们知道您的问题已解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 2018-09-11
    • 1970-01-01
    • 2017-12-13
    相关资源
    最近更新 更多