Help sketching equation into 3d graph
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Muhd Farhad
el 1 de Jun. de 2021
Respondida: Star Strider
el 1 de Jun. de 2021
What I got so far for the equation
Z=5-sqrt(1-x.^(2)-(y-abs(x)).^2).*cos(30.*(1-x.^(2)-(y-abs(x)).^(2)))
Then I tried these lines
x=linspace(-1,1, 200);
y=linspace(-1, 1.5, 200);
[X,Y]=meshgrid(x,y);
Z=5-sqrt(1-x.^(2)-(y-abs(x)).^2).*cos(30.*(1-x.^(2)-(y-abs(x)).^(2)))
zlim([1,6]);
surf(X,Y,Z);
It gave me "Z must be a matrix, not a scalar or vector." error.
0 comentarios
Respuesta aceptada
Star Strider
el 1 de Jun. de 2021
The error it throws when I run it here is:
X, Y, Z, and C cannot be complex
This is likely because of the negative values in ‘x’ and ‘y’, however I did not do an in-depth analysis.
Dealing with that produces —
x=linspace(-1,1, 200);
y=linspace(-1, 1.5, 200);
[X,Y]=meshgrid(x,y);
Z=@(x,y) 5-sqrt(1-x.^(2)-(y-abs(x)).^(2).*cos(30*(1-x.^(2)-(y-abs(x)).^(2))));
figure
surf(X,Y,real(Z(X,Y)))
grid on
zlim([1,6])
title('Real Z')
figure
surf(X,Y,imag(Z(X,Y)))
grid on
% zlim([1,6])
title('Imag Z')
figure
surf(X,Y,abs(Z(X,Y)))
grid on
zlim([1,6])
title('|Z|')
figure
surf(X,Y,Z(X,Y))
grid on
zlim([1,6])
title('Complex Z')
.
0 comentarios
Más respuestas (2)
Joseph Cheng
el 1 de Jun. de 2021
what you'll need to do is use the function meshgrid() which will then create a 2D matrix for both x and y such that you can get the pair combination of x and y of your linspace
[x y]=meshgrid(x,y);
%then do your Z
2 comentarios
Joseph Cheng
el 1 de Jun. de 2021
As right now
x = 1x200 matrix
y = 1x200 matrix
so since you're using .* and .^ in your Z equation you'll also get a 1x200 for Z.
using meshgrid to generate the 2D grid of x and y combinations such that you can get the range of Z values for x between -1 and 1 and y over the range of -1 and 1.5.
Girijashankar Sahoo
el 1 de Jun. de 2021
% Size of of your output Z must be 200x200 matix
% Try this code for 3D output
x=linspace(-1,1, 200);
y=linspace(-1, 1.5, 200);
for i=1:length(y)
for k=1:length(x)
Z=5-sqrt(1-x.^(2)-(y-abs(x)).^(2).*cos(30*(1-x.^(2)-(y-abs(x)).^(2))));
end
end
zlim([1,6]);
T=rand(200)
surf(x,y,T);
0 comentarios
Ver también
Categorías
Más información sobre Language Fundamentals en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!