3D plot rotate
17 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Aditya Rallapalli
am 16 Apr. 2020
Bearbeitet: Star Strider
am 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 Kommentare
Akzeptierte Antwort
Star Strider
am 16 Apr. 2020
Bearbeitet: Star Strider
am 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 Kommentare
Weitere Antworten (1)
Ameer Hamza
am 16 Apr. 2020
Bearbeitet: Ameer Hamza
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Line Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!