已多次询问此问题的变体,例如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。
答案 0 :(得分:1)
假设文本文件中的列由单个空格字符分隔,则格式规范应如下所示:
A = textscan(filename,'%f %s %f');
A
现在包含完整的文件内容。要获得第一列:
first_col = A{:,1};
或者,您可以告诉textscan
使用*
选项跳过不需要的字段:
first_col = cell2mat( textscan(filename, '%f %*s %*f') );
这只返回第一列。