3D plot rotate
18 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Aditya Rallapalli
il 16 Apr 2020
Modificato: Star Strider
il 16 Apr 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 Commenti
Risposta accettata
Star Strider
il 16 Apr 2020
Modificato: Star Strider
il 16 Apr 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 Commenti
Più risposte (1)
Ameer Hamza
il 16 Apr 2020
Modificato: Ameer Hamza
il 16 Apr 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 Commenti
Vedere anche
Categorie
Scopri di più su Line Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!