필터 지우기
필터 지우기

Gradient plot as arrow - strange result

조회 수: 3 (최근 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에서 Vector Fields에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by