有人可以告诉我我做什么错误的颤抖绘图功能,当我没有真正得到箭头,它只是充满了空间有很多蓝色。查看下面的图片,然后看看我的代码。颤动没有绘制箭头只是很多蓝色,matlab
这只是我的轮廓的一部分,因为如果我尝试绘制更大的图像,这会消耗更多的能量。但是我的功能,轮廓和其他一切都起作用,这只是我遇到麻烦的颤抖。
interval = -100:100;
[X Y] = meshgrid(interval, interval);
h = figure;
contour(X, Y, Z);
hold on;
[FX,FY] = gradient(-Z);
quiver(X, Y, FX, FY);
hold off;
如果我让我的矩阵更稀疏,例如“interval = linspace(-800,1600,1200);”结果将如下所示:
编辑: 我需要的是这样的轮廓线,但箭头应该与他们一起流动。现在这些只是看起来像点,即使我进一步放大。如果我缩小整个窗口将是蓝色的。
这是脚本的全部内容,如果有人想玩它来弄清楚这一点。
m1 = 1;
m2 = 0.4;
r1 = [1167 0 0];
r2 = [-467 0 0];
G = 9.82;
w = sqrt(G*(m1+m2)/norm(r1-r2)^3);
interval = linspace(-800, 1600, 1200);
% Element-wise 2-norm
ewnorm = @(x,y) (x.^2 + y.^2).^(1/2);
% Element-wise cross squared
ewcross2 = @(w,x,y) w^2.*(x.*x + y.*y);
[X Y] = meshgrid(interval, interval);
Z = - G*m1 ./ ewnorm(X-r1(1), Y-r1(2)) - G*m2 ./ ewnorm(X-r2(1), Y-r2(2)) - 1/2*ewcross2(w,X,Y);
h = figure;
contour(Z);
daspect([1 1 1]);
saveas(h, 'star1', 'eps');
hold on;
[FX,FY] = gradient(-Z);
quiver(X, Y, FX,FY);
hold off;
2011-09-15
C. E.
+0
什么是Z的定义? –
+0
只是一个公式,因为我得到预期的轮廓。 –