【发布时间】:2015-02-10 06:03:51
【问题描述】:
我正在尝试在圆形网格上绘制函数的梯度。要创建圆形网格,我有以下代码
r0 = 6;
N = 40;
r = linspace(0, r0, N);
theta = linspace(0, 2*pi, N);
[Theta, R] = meshgrid(theta, r);
[X, Y] = pol2cart(Theta, R); % X,Y grid of a circular mesh on Cartesian Coordinate
我有一个简单的功能
distanceFunc = r0^2 - (X.^2 + Y.^2);
我可以轻松地绘制 surf 和 contour 的绘图。但我也需要渐变,我在 matlab 中使用gradient 函数,如下所示:
[u, v] = gradient(distanceFunc);
然后quiver 绘制梯度向量。
quiver(X, Y, u, v)
但我没有为quiver 情节找到正确的方向。极坐标/笛卡尔坐标之间可能有一些变化,但我似乎找不到它是什么!
【问题讨论】: