# How can I extract a profile from a surface?

8 visualizzazioni (ultimi 30 giorni)
Leonardo Colavitti il 1 Feb 2017
Hello everybody, I would like to extract a profile from a surface. My initial matrix is composed by a matrix (18011*3) of Longitude, Latitude and Depth values. Specifically, I'd like a function that in input takes the position of start (A) and end of my profile (B) (xa,ya,xb,yb) and in output return the position of the corresponding z in A and B {e.g. [A,B] = myfunc(xa,ya,xb,yb)}. I am new in matlab and now very desperated ... Someone can help me, please?
Leonardo
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposte (2)

Iddo Weiner il 1 Feb 2017
Hi Leonardo, I hope I understood your question properly... Here's my suggestion (I worked with small made-up data):
data = rand([5,5,5]);
xA = 2; xB = 4; yA = 5; yB = 5;
zA = data(xA,yA,:); zB = data(xB,yB,:);
% initiate new arrays and use a loop to lower the dimensions:
low_zA = nan(length(zA),1);
for i = 1:(length(low_zA))
low_zA(i) = zA(1,1,i);
end
low_zB = nan(length(zB),1);
for i = 1:(length(low_zB))
low_zB(i) = zB(1,1,i);
end
% now if you want to draw each of the profiles:
plot(low_zA,'r-p')
hold on
plot(low_zB,'k--*')
ylabel('Z axis value')
legend('zA','zB')
Notice that I have some code duplication here. I'd generalize this example into a function before starting to work with it.
Hope this helps,
Iddo
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Leonardo Colavitti il 2 Feb 2017
Hello Iddo, thank you very much for your answer but I would like something of little different. I have an initial matrix which constitutes a curve (which easily I plot with plot3, mesh and surf). My goal is to write a function that in input has two values in space (xa,ya) and (xb,yb) while in output I would like to see a profile between x values and z(depth) that represents the interception between the curve and the plane y=0... I hope you can help me, anyway Thank you again!

Accedi per commentare.

Walter Roberson il 1 Feb 2017
https://www.mathworks.com/help/images/ref/improfile.html has it already built in (Image Processing Toolbox)
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Leonardo Colavitti il 23 Feb 2017
Thanks for your answer, but it is not exactly what I am looking for. My function is defined by points and I think that 'improfile' evaluates the values of pixels (intensity) along a line in grey scale or RGB colors. Do you have any other idea?

Accedi per commentare.

### Categorie

Scopri di più su Surface and Mesh Plots in Help Center e File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by