您可以使用textscan
. 第一次调用此函数将处理第一行(即获取文件的尺寸),第二次调用文件的其余部分。第二个调用用于repmat
声明格式规范:%f
、含义double
、重复nb_col
次数。该选项CollectOutput
将连接单个数组中的所有列。请注意,textscan
无需指定行数即可读取整个文件。
代码是
fileID = fopen('youfile.dat'); %declare a file id
C1 = textscan(fileID,'%s%f%s%f'); %read the first line
nb_col = C1{4}; %get the number of columns (could be set by user too)
%read the remaining of the file
C2 = textscan(fileID, repmat('%f',1,nb_col), 'CollectOutput',1);
fclose(fileID); %close the connection
在列数固定的情况下,您可以简单地执行
fileID = fopen('youfile.dat');
C1 = textscan(fileID,'%s%f%s%f'); %read the first line
im_x = C1{2}; %get the x dimension
im_y = C1{4}; %get the x dimension
C2 = textscan(fileID,'%f%f%f%f%f%f%*[^\n]', 'CollectOutput',1);
fclose(fileID);
格式规范%*[^\n]
会跳过一行的剩余部分。