3D plot rotate
21 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Aditya Rallapalli
le 16 Avr 2020
Modifié(e) : Star Strider
le 16 Avr 2020
Hi all,
I have a 3D surf plotted in fig. 1 with axis X, Z and Y

Figure 1
I want to rotate the figure to get something like shown in fig.2

Figure 2
PS: Figure 2 is from book, I am just trying to generate similar figure using matlab. Both are same it's just about plotting in such a way that Y is in place of Z
2 commentaires
Réponse acceptée
Star Strider
le 16 Avr 2020
Modifié(e) : Star Strider
le 16 Avr 2020
EDIT — (16 Apr 2020 at 13:35)
Using your posted code and rotate:
x = [0:0.01:1];
z = [0:0.01:1];
for i = 1:length(x)
for j = 1:length(z)
y1(i,j) = -sqrt(x(i) * z(j));
end
end
for i = 1:length(x)
for j = 1:length(z)
y2(i,j) = sqrt(x(i) * z(j));
end
end
h(1) = surf(x,z,y1);
hold on
h(2) = surf(x,z,y2);
hold off
rotate(h, [1 0 0], 90)
produces:

If you want only the grids without the patch colours, add:
set(h, 'FaceColor','none')
to produce:

.
0 commentaires
Plus de réponses (1)
Ameer Hamza
le 16 Avr 2020
Modifié(e) : Ameer Hamza
le 16 Avr 2020
Try this. Correct the vector order for y and z-axis.
x = 0:0.01:1;
z = 0:0.01:1;
[X,Z] = meshgrid(x,z);
y1 = zeros(size(X));
for i = 1:length(x)
for j = 1:length(z)
y1(i,j) = -sqrt(x(i) * z(j));
end
end
y2 = zeros(size(X));
for i = 1:length(x)
for j = 1:length(z)
y2(i,j) = sqrt(x(i) * z(j));
end
end
surf(X,y1,Z);hold on;
surf(X,y2,Z)

0 commentaires
Voir également
Catégories
En savoir plus sur Line Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!