3D plot rotate
17 views (last 30 days)
Show older comments
Aditya Rallapalli
on 16 Apr 2020
Edited: Star Strider
on 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 Comments
Accepted Answer
Star Strider
on 16 Apr 2020
Edited: Star Strider
on 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 Comments
More Answers (1)
Ameer Hamza
on 16 Apr 2020
Edited: Ameer Hamza
on 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 Comments
See Also
Categories
Find more on Line Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!