How to make section distance of temperature
Ältere Kommentare anzeigen
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
clc
clear
data=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')
colorbar
axis tight; hold on
shading interp
ylabel('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);
end
end
bx(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';
colorbar
xlabel('Distance (km)');
ylabel('Depth (m)');
Desired picture :

result syntax :

Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
