3D plot rotate

18 visualizzazioni (ultimi 30 giorni)
Aditya Rallapalli
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
Tommy
Tommy il 16 Apr 2020
Can you provide the code you used to generate the plot?
Aditya Rallapalli
Aditya Rallapalli il 16 Apr 2020
>> 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
surf(x,z,y1);hold on;
surf(x,z,y2)

Accedi per commentare.

Risposta accettata

Star Strider
Star Strider il 16 Apr 2020
Modificato: Star Strider il 16 Apr 2020
Use the rotate function.
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:
.

Più risposte (1)

Ameer Hamza
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)

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!

Translated by