First, it is suggested to obtain the 2D plot.

Then use this function. InterX

P = InterX([P2S;phiS],[P2S;Y]);

plot(P2S,phiS,P2S,Y,P(1,:),P(2,:),'ro'); grid on;xlabel('P2');ylabel('Phi'); hold on;

7 views (last 30 days)

Hi,

I have a 3D plot as shown in the attachment. You can see a data point x=0.25, y=2.25, z=0.27599 in the first curve. I want to find the corresponding y point of the second curve, when z=0.27599 and, x=0.50(second curve) for the second curve are given. Similar way I want to find the corresponding y point when z=0.27599 in the third curve and so on.

Your kind help will be greatly appreciated.

Image Analyst
on 1 Jul 2020

interp1() should do it. Did you try it?

Image Analyst
on 2 Jul 2020

Well everything requires work but I don't think one single line of code is a huge amount of work, especially compared to downloading some third party function from the File Exchange. Look, here's a demo where I create data and find out the x value where the curve is equal to some specified y values. And you can see it's one single line of code:

% Create function and plot it.

P2 = linspace(0, 4, 8);

Phi = 1 - cos(2 * pi * P2 / 8);

plot(P2, Phi, 'b.-', 'MarkerSize', 20);

grid on;

xlabel('P2', 'FontSize', 20);

ylabel('Phi', 'FontSize', 20);

yline(1.1, 'Color', 'r');

% Now find x when y = 1.1. This is the single line of code you need.

x = interp1(Phi, P2, 1.1)

% Done! Now place a marker and line at that point.

xline(x, 'Color', 'r');

hold on;

plot(x, 1.1, 'rs', 'MarkerSize', 20, 'LineWidth', 2);

After it hits the x= line of code, it puts this in the command window:

x =

2.12839883449814

I mean, it really can't get much easier than that.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.