How to create surface from stacked 2D plots?

4 次查看(过去 30 天)
I want to create a 3-d plot showing how the stability range (b_kx,b_ky) change depending on the time delay of the system (z-Axis). I can stack (b_kx,b_ky) plots by using plot3d (b_kx, b_ky, T) for each T. How can I smoothly create a surface connecting each of the individual plots?

采纳的回答

Star Strider
Star Strider 2020-8-26
It would help to have your data. Lacking them, adapt this approach to your data.
This should get you started:
t = linspace(0, 2*pi, 60); % Parameter Vector
crcx = cos(t); % Circle X
crcy = sin(t); % Circle Y
rv = randi([2 10], 10, 1); % Radius Vector
crcxm = rv*crcx; % Circle X Matrix
crcym = rv*crcy; % Circle Y Matrix
figure
surf(crcxm, crcym, 2*(1:10)'+ones(size(crcxm))) % Plot Surface
grid on
axis equal
view(30,25)
shading('interp') % Optional
producing (for this random radius vector):
So with your data, create matrices from the individual circles by vertically concatenating their x and y coordinates (make them equal lengths using a common angle vector and interp1 if they are not already equal), then plot that with a z matrix created by adding a column vector of the ‘T’ values by an appropriate ones matrix as I did here. They all appear to have a common centre, so that should not be a problem.
.
  2 个评论
DFfd
DFfd 2020-8-26
Thanks. It worked perfectly.
Basically what I have to do is running surf(b_kx,b_ky,T+zeros(size(b_kx))) in which b_kx and b_ky are matrices with length(T) amount of columns, each column representing a set of data under one time delay setup.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by