MATLAB: Plot bunch of 2D data to 3D surface plot

2d to 3d

I have problems with plotting my data:
From several simulations I have numerous vectors z_data_i and y_data_i
I would like to 3D plot them, since all of the z and y data vectors are produced at different states x_state_i.
So:
z_data_1 = f(x_state_1, y_data_1)
z_data_2 = f(x_state_2, y_data_2)
z_data_LastSimulation = f(x_state_LastSimulation, y_data_LastSimulation)
whereas x_state_ith_Simulation is fix for each simulation. So I basically have 2D plots (each at state x_state_ith_Simulation) that I would like to combine to a 3D surface plot.
I have tried with mesh/meshgrid/surf but nothing worked.
Thank you so much for the help!!

Best Answer

I have no idea what your functions and data are, however plotting them is straightforward using the plot3 function.
Example —
x = linspace(0, 2*pi, 150);
fcn = @(x,s) sin(x*s);
s = 1:5:25; % ‘State’ Vector
for k = 1:numel(s)
z_data(k,:) = fcn(x,s(k));
end
figure
hold all
for k = 1:numel(s)
plot3(x,z_data(k,:),ones(size(x))*s(k)) % Stacked 2D Plots
end
hold off
grid on
view(-30,20)
figure
surf(x, s, z_data) % Surface Plot
grid on
xlabel('x')
ylabel('s')
Experiment with this idea with your data to get the result you want.
EDIT — Added comment documentation.