仅扫描带有Textscan的列

时间:2016-12-12 15:20:04

标签: matlab text-files textscan

我想通过textscan命令获取实时更改文本文件的第二列。我只能获取文本文件的第一列,但我想要第二列。这是我的代码:

    fileid = fopen (Path);
    rxt = textscan (fileid, '%d %*[^\n]' );
    fclose (fileid);

    arr = rxt {1,1};

如何只读取第二列?

以下是文本文件的一部分:

226, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, 0,00, 0,00, 0,00
227, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, 0,00, 0,00, 0,00
228, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, 0,00, 0,00, 0,00

1 个答案:

答案 0 :(得分:2)

您可以指定您要丢弃第一个号码(%*d),保留第二个(%d),然后丢弃其余字符串(%*[^\n]

textscan(fileid, '%*d, %d, %*[^\n]')

虽然根据数据,您已经粘贴了一个逗号分隔的文件,使用,作为小数点。因此,您需要读取第二个和第三个数字并将它们转换为浮点数

numbers = textscan(fileid, '%*d, %d,%d %*[^\n]');
numbers = arrayfun(@(a,b)a * 10^b, numbers{:})