Respuesta aceptada

Star Strider
Star Strider el 1 de Oct. de 2020

2 votos

14 comentarios

qweasd
qweasd el 1 de Oct. de 2020
Editada: qweasd el 1 de Oct. de 2020
thanks, I've seen this page but I still can't do it. I am new in Matlab.
Star Strider
Star Strider el 1 de Oct. de 2020
This should get you started:
x = linspace(3, 4, 25);
y = linspace(5, 6, 25);
[X,Y] = meshgrid(x,y);
z = @(x,y) x.^2+y.^5+3*x+4*y;
Z = z(X,Y);
See the documentation section on Anonymous Functions to understand ‘z’.
You can also use ndgrid instead of meshgrid.
It is not a very interesting plot.
qweasd
qweasd el 1 de Oct. de 2020
Thank you, I will try it.
Star Strider
Star Strider el 1 de Oct. de 2020
My pleasure!
qweasd
qweasd el 2 de Oct. de 2020
I've been working on it, but still cant do it. I'm really bad :( If you don't mind, can you share the code?
Star Strider
Star Strider el 2 de Oct. de 2020
You aren’t really bad. You simply need to experiment with it.
The rest of the code is essentially what’s in the documentation example that I linked to, from the gradient call to the end of the example. You only need to make a few small changes to it.
qweasd
qweasd el 5 de Oct. de 2020
Editada: qweasd el 5 de Oct. de 2020
x = linspace(3, 4, 25);
y = linspace(5, 6, 25);
[X,Y] = meshgrid(x,y);
z = @(x,y) x.^2+y.^5+3*x+4*y;
Z = z(X,Y);
[px,py] = gradient(Z)
figure
contour(x,y,Z)
hold on
quiver(x,y,px,py)
hold off
Like this ?
Star Strider
Star Strider el 5 de Oct. de 2020
Like that!
The code I wrote for your problem:
x = linspace(3, 4, 25);
y = linspace(5, 6, 25);
[X,Y] = meshgrid(x,y);
z = @(x,y) x.^2+y.^5+3*x+4*y;
Z = z(X,Y);
[px,py] = gradient(Z);
figure
contour(X,Y,Z)
hold on
quiver(X,Y,px,py)
hold off
They appear to match.
qweasd
qweasd el 5 de Oct. de 2020
thank you so much
Star Strider
Star Strider el 5 de Oct. de 2020
As always, my pleasure!
saurav Tiwari
saurav Tiwari el 29 de Sept. de 2021
x = linspace(3, 4, 25);
y = linspace(5, 6, 25);
[X,Y] = meshgrid(x,y);
z = @(x,y) x.^2+y.^5+3*x+4*y;
Z = z(X,Y);
[px,py] = gradient(Z);
figure
contour(X,Y,Z)
hold on
quiver(X,Y,px,py)
hold off
saurav Tiwari
saurav Tiwari el 29 de Sept. de 2021
it's not working
Yes, it is!
x = linspace(3, 4, 25);
y = linspace(5, 6, 25);
[X,Y] = meshgrid(x,y);
z = @(x,y) x.^2+y.^5+3*x+4*y;
Z = z(X,Y);
[px,py] = gradient(Z);
figure
contour(X,Y,Z)
hold on
quiver(X,Y,px,py)
hold off
.
Niklas Kurz
Niklas Kurz el 13 de Mzo. de 2022
Editada: Niklas Kurz el 13 de Mzo. de 2022
I would opt to normalise the Arrows for better scaling:
Norm = sqrt(px.^2+py.^2)
quiver(X,Y,px./Norm,py./Norm,0.5)
Otherwise the code is pretty neat!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 2-D and 3-D Plots en Centro de ayuda y File Exchange.

Preguntada:

el 1 de Oct. de 2020

Editada:

el 13 de Mzo. de 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by