I have these points
Ax=2:4:14;
Ay=2:4:14;
Z=rand(4,4)+20;
I would like to plot the surface in 3D but not as a unite surface but rather multiple individual surfaces. I would like each point to be a square surface of surface area=4*4, parallel to xy axes where Ax and Ay is the centre of each square surface.
I tried the below but no luck
surf(Ax,Ay,Z)
bar3(Z,4)

 Réponse acceptée

Star Strider
Star Strider le 23 Nov 2017

1 vote

I am not certain what you want.
This should get you started:
Ax=2:4:14;
Ay=2:4:14;
figure(1)
for k1 = 1:length(Ax)
surf(cumsum(ones(4),1)+Ax(k1), cumsum(ones(4),2)+Ay(k1), zeros(4)+rand)
hold on
end
hold off
grid on

8 commentaires

Spyros Polychronopoulos
Spyros Polychronopoulos le 24 Nov 2017
Modifié(e) : Spyros Polychronopoulos le 24 Nov 2017
Thank you very much Star Strider for your answer was very helpful. But I am still missing few things:
1. only 4 surfaces are plotted. I would like all the combinations of Ax and Ay to be plotted as surf(Ax,Ay,Z) would do but I want the surfaces to be parallel to xy axes (as the ones that are plotted with your code)
2. I want them to be a certain length and width for example 4*4
Thank you in advance
Here you go:
Ax=2:4:14;
Ay=2:4:14;
N = 4; % Surface Segments
figure(1)
for k1 = 1:length(Ax)
for k2 = 1:length(Ay)
surf(cumsum(ones(N+1),1)+Ax(k1), cumsum(ones(N+1),2)+Ay(k2), zeros(N+1)+rand)
hold on
end
end
hold off
grid on
Spyros Polychronopoulos
Spyros Polychronopoulos le 24 Nov 2017
Thank you Star Strider!
that's it! :)
Star Strider
Star Strider le 24 Nov 2017
As always, my pleasure!
Spyros Polychronopoulos
Spyros Polychronopoulos le 27 Nov 2017
Modifié(e) : Spyros Polychronopoulos le 27 Nov 2017
Hi Star Strider, two minor things if they are easily done:
1. could I get rid of the grid of the surfaces. I mean the 4*4 grid each surface has.
2. could I have surfaces that they are 4.3*4.3 for example rather than 4*4?
Try this:
Ax=2:4:14;
Ay=2:4:14;
N = 4; % Surface Segments
SF = 4.3; % Surface Size Scale Factor
figure(1)
for k1 = 1:length(Ax)
for k2 = 1:length(Ay)
surf(SF/4*cumsum(ones(N+1),1)+Ax(k1), SF/4*cumsum(ones(N+1),2)+Ay(k2), zeros(N+1)+rand, 'LineStyle','none')
hold on
end
end
hold off
grid on
Spyros Polychronopoulos
Spyros Polychronopoulos le 27 Nov 2017

Thank you

Star Strider
Star Strider le 27 Nov 2017
My pleasure.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by