Effacer les filtres
Effacer les filtres

Gradient plot as arrow - strange result

3 vues (au cours des 30 derniers jours)
Gennaro Arguzzi
Gennaro Arguzzi le 12 Nov 2017
Commenté : Jan le 12 Nov 2017
I tried to plot gradient as an arrow with:
x=-10:2:10;
f = -x.^2;
u = gradient(x);
n=length(u);
for i=1:n
a(i)=0;
end
quiver(a,a,u,a)
grid
axis equal
Why I get only one arrow? I'd like to get an arrow each two x ticks.
Thank you very much in advance.

Réponse acceptée

Jan
Jan le 12 Nov 2017
You do not get only 1 arrow, but they all start from the same point and have the same size and direction. Try:
quiver(x, f, u, a)
  2 commentaires
Gennaro Arguzzi
Gennaro Arguzzi le 12 Nov 2017
Modifié(e) : Gennaro Arguzzi le 12 Nov 2017
Hello @JanSimon, how can I get the following result? Arrows are right scaled and not superimposed. This is the gradient in one dimension.
Thank you so much.
Jan
Jan le 12 Nov 2017
x = -10:2:10;
f = -x.^2;
df = gradient(f, x);
figure;
plot(x, f);
hold on
quiver(x, zeros(size(x)), df/10, zeros(size(x)), 0, 'r');
Well, this is extremely ugly. I was not able to use quiver at any time for any useful output. There are many nice arrow functions in the FileExchange: https://www.mathworks.com/matlabcentral/fileexchange/?utf8=%E2%9C%93&term=arrow

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Vector Fields dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by