【问题标题】:How to import column of numbers from mixed string numerical text file如何从混合字符串数字文本文件中导入数字列
【发布时间】:2014-04-07 05:09:07
【问题描述】:

这个问题的变体已经被问过好几次了,例如here。但是,我似乎无法让它适用于我的数据。

我有一个包含 3 列的文本文件。第一列和第三列是浮点数。中间列是字符串。我只对真正获得第一列感兴趣。

这是我尝试过的:

filename=fopen('heartbeatn1nn.txt');
A = textscan(filename,'%f','HeaderLines',0);
fclose(filename);

当我这样做时,A 只是一个数字——列中的第一个元素。我如何获得整列?我也尝试过使用“.tsv”文件扩展名,结果相同。

也试过了:

filename=fopen('heartbeatn1nn.txt');
formatSpec='%f';sizeA=[1 Inf];
A = fscanf(filename,formatSpec,sizeA);
fclose(filename);

结果相同。

文件大小可能有问题吗?不确定有多少行,但可能很多,因为文件大小为 1.7M。

【问题讨论】:

    标签: matlab import text-files


    【解决方案1】:

    假设您的文本文件中的列由单个空格字符分隔,您的格式规范应如下所示:

    A = textscan(filename,'%f %s %f');
    

    A 现在包含完整的文件内容。获取第一列:

    first_col = A{:,1};
    

    或者,您可以告诉textscan 使用* 选项跳过不需要的字段:

    first_col = cell2mat( textscan(filename, '%f %*s %*f') );
    

    这只会返回第一列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多