Try the following codes:
% read number of rows
r = fgetl(fid);
row = sscanf(r, '%d');
% read number of columns
c = fgetl(fid);
col = sscanf(c, '%d');
% read junk line
tmp = fgetl(fid); clear tmp;
% get flags
F = fscanf(fid,'%d',[col row])';
% get x values
X1 = fscanf(fid,'%f',[col row])';
% get y values
Y1 = fscanf(fid,'%f',[col row])';
% get z values
Z1 = fscanf(fid,'%f',[col row])';
fclose(fid);
len = 0;
for i = 1:row
for j = 1:col
if(F(i,j))
len = len + 1;
X(len) = X1(i,j);
Y(len) = Y1(i,j);
Z(len) = Z1(i,j);
end
end
end
%
plot3(X,Y,Z,'b.');
%
[XI,YI] = meshgrid(-col/2:1:col/2,row/2:-1:-row/2);
ZI = griddata(X,Y,Z,XI,YI,'cubic');
figure,surfl(XI,YI,ZI);
shading interp
colormap(gray);