有人可以告訴我我做什麼錯誤的顫抖繪圖功能,當我沒有真正得到箭頭,它只是充滿了空間有很多藍色。查看下面的圖片,然後看看我的代碼。顫動沒有繪製箭頭只是很多藍色,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;
什麼是Z的定義? –
只是一個公式,因爲我得到預期的輪廓。 –