Gradient plot as arrow - strange result

조회 수: 1 (최근 30일)
Gennaro Arguzzi
Gennaro Arguzzi 2017년 11월 12일
댓글: Jan 2017년 11월 12일
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.

채택된 답변

Jan
Jan 2017년 11월 12일
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
Gennaro Arguzzi
Gennaro Arguzzi 2017년 11월 12일
편집: Gennaro Arguzzi 2017년 11월 12일
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 2017년 11월 12일
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by