我想通过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
答案 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{:})