通过While循环将大型文本文件读入MATLAB
我正试图将一个3 GB的大文本文件读入MATLAB,由一个带有名称的标题和一个空格分隔符(见下面的fruit.txt)组织,但是,所需的唯一数据是Grapes列。因为它是一个巨大的文件,所以我使用下面的一个循环将一列内容读入Matlab。如何使用下面的循环仅读取一列数据?我必须使用循环和预选所需的列,因为文件的数据量超过3 GB fruit.txt通过While循环将大型文本文件读入MATLAB,matlab,io,textscan,Matlab,Io,Textscan,我正试图将一个3 GB的大文本文件读入MATLAB,由一个带有名称的标题和一个空格分隔符(见下面的fruit.txt)组织,但是,所需的唯一数据是Grapes列。因为它是一个巨大的文件,所以我使用下面的一个循环将一列内容读入Matlab。如何使用下面的循环仅读取一列数据?我必须使用循环和预选所需的列,因为文件的数据量超过3 GB fruit.txt Apples Grapes Oranges 3 4 A 4 G 1 6 A 3 3 4 1 A 6 1 2 2 4 filename = 'fr
Apples Grapes Oranges
3 4 A
4 G 1
6 A 3
3 4 1
A 6 1
2 2 4
filename = 'fruit.txt'
delimiter = ' ';
formatSpec = '%s%s%s[^\n\r]';
fileID = fopen(filename, 'r' ) ;
out = {};
k = 0 ;
while ~feof(fileID)
k = k+1;
C = textscan(fileID, formatSpec, 'Delimiter', delimiter);
out{end+1} = Grapes{:,2};
end
使用readmatrix并指定一个标题行,您只需要第2列:
readmatrix(filename, 'FileType','text', 'Delimiter', delimiter, 'NumHeaderLines', 1, 'Range', 'B:B');
仅供将来澄清以帮助他人:readmatrix而非matrixread。@Minimalist Doh!是的:我的MATLAB机器不是我打这个的机器。谢谢