I would like to make section distance from depth, section distance, and temperature data with bottom topography shown (as the picture shown). Here is my excel data, and I have tried to programing on syntax as follow. But it's not working especially for the boundary loop. Is there any idea for this? I utilize Matlab 2019a
clccleardata=xlsread('ctd_data.xlsx');x=data(:,5); %first colum in excel file, as distance
y=data(:,3)*-1;%second colum in excel file, as depth
c=data(:,4); %c is the concentration of Temperature
figure(1)scatter(x,y,30,c,'filled')colorbaraxis tight; hold onshading interpylabel('Depth (m)'); title('Temperature distribution');figure(2)[xg,yg] = meshgrid(min(x):0.1:max(x),min(y):0.1:max(y)); %make a grid to contain x,y
f = scatteredInterpolant(x,y,c,'linear'); %assign c values to x y
vg = f(xg,yg);% assign c values to finer pixel xg yg
for i=1:(length(x)-1)% 1 to end of the distance
if x(i+1)~=x(i) j=i+1; bx(j)=x(i); by(j)=y(i); endendbx(j+1)=x(length(x));by(j+1)=y(length(y));bx(j+2)=x(length(x));by(j+2)=0;b=boundary(x,y,1);inmask = inpolygon(xg(:),yg(:), bx , by );%define which pixel exist in the polygon
vg(~inmask) = nan; %NAN values for the pixel not in the polygon
h = pcolor(xg,yg,vg); %ploting in 2D of vg by color
h.EdgeColor = 'none'; %to get rid off the edge line
h.FaceColor = 'interp';colorbarxlabel('Distance (km)'); ylabel('Depth (m)');
Desired picture :
result syntax :
Best Answer