MATLAB: Removing values from surf

datanansurf

I am plotting surf plot from the data (.mat file attached), but, there is data where Z values are zero which is ruining the plot. This results in "walls" around important features in surf. Following is the code that I am using:
ax = surf(X,Y,Z,temp); colormap((hot(30))); colorbar;
caxis([mean(temp,'all','omitnan')-2.5*std(temp,[],'all','omitnan') mean(temp,'all','omitnan')+2.5*std(temp,[],'all','omitnan')]);
ax.LineStyle = 'none';ax.EdgeColor = 'flat';ax.FaceColor = 'flat';
xlim([-70 70])
ylim([-70 70])
zlim([-30 30])
I want to keep the limits same. Resulting plot looks like this:
Any suggestions on how I can get rid of these "walls"?

Best Answer

load(websave('data.mat','https://www.mathworks.com/matlabcentral/answers/uploaded_files/508797/data.mat'))
Z(Z==0)=nan;
ax = surf(X,Y,Z,temp); colormap((hot(30))); colorbar;
caxis([mean(temp,'all','omitnan')-2.5*std(temp,[],'all','omitnan') mean(temp,'all','omitnan')+2.5*std(temp,[],'all','omitnan')]);
ax.LineStyle = 'none';ax.EdgeColor = 'flat';ax.FaceColor = 'flat';
xlim([-70 70])
ylim([-70 70])
zlim([-30 30])