3 views (last 30 days)

Show older comments

Hi,

I have 2 sets of data points that create lines on a 3-Dimensional plot.

I would like create a linear surface between the two sets of data points. Each data point on one set of data would correspond with the data point on the other set. I am unsure of how to go about this other than finding a linear equation for each coupled data points.

r1 = [-2.2607e-05; 1.1301e-08; 1.4319e-04; -1.4319e-04];

x = linspace(0,1000);

y = x;

u1_3 = (r1(1)*x.^2 + r1(2)*y.^3);

figure(3)

hold on

grid on

scatter3(x,y,u1_3-100,'b')

X2 = linspace(0,0);

Y2 = linspace(0,1000);

Z2 = linspace(0,0);

scatter3(X2,Y2,Z2-100,'k')

zlim([-1e3 0])

ylim([-1000 1000])

xlim([-1000 1000])

xlabel('x (meters)')

ylabel('y (meters)')

zlabel('Deflection, m/V')

hold off

Any help on this is much appreciated!

Clayton Gotberg
on 19 Apr 2021

Edited: Clayton Gotberg
on 19 Apr 2021

When you send matrices to the plotting command, the way that it plots depends on the orientation of those matrices

% x, y, z already defined as row matrices (1 x n)

X = [x1; x2]; % Create a matrix with x1(1) above x2(1); do the same for Y and Z

Y = [y1; y2];

Z = [z1; z2];

plot3(X,Y,Z) % Result: n lines with two points (x1,y1,z1) and (x2,y2,z2)

plot3(X',Y',Z') % Result: 2 lines with n points

If you are trying to create a surface, specifically, the surf command should take the exact same inputs and create a single surface.

Clayton Gotberg
on 20 Apr 2021

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

Start Hunting!