【问题标题】:Is there a possibility to have a quiver plot with vectors of same length?是否有可能有一个相同长度的向量的颤动图?
【发布时间】:2021-04-26 19:09:19
【问题描述】:

我在 MATLAB 中使用箭袋图来模拟速度场。现在我希望箭袋图产生的向量长度相同,以便它们只指示向量方向。那么每个点的速度值应该用不同的颜色来表示。 是否有可能拥有相同长度的箭袋绘图向量?

这是我当前的代码:

%defining parameters:
age = 900;
vis= 15;

turbulences = zeros(9,3);
a = 0.01;
spacing = 1000;
[x,y] = meshgrid(-100000:spacing:100000);%, 0:spacing:10000);
u = a;
v = 0;

n = 0;
for i = 1:4
    turbulences(i,1) = -80000 + n;
    turbulences(i,2) = 15000;
    n = 15000 * i; 
end

n = 0;
for i = 5:9
    turbulences(i,1) = -15000 + n*5000;
    turbulences(i,2) = 4000;
    n = n+1;
end

for i = 1:4
    turbulences(i,3) = -1000;
end
for i = 5:9
    turbulences(i,3) = 800;
end

%compute velocities in x and y direction 
for k = 1:9
    xc = turbulences(k,1);
    yc = turbulences(k,2);
    r1 = ((x-xc).^2 + (y-yc).^2);
    r2 = ((x-xc).^2 + (y+yc).^2);
    u = u + turbulences(k,3)/2*pi * (((y-yc)./r1).*(1-exp(-(r1./(4*vis*age)))) - ((y+yc)./r2).*(1-exp(-(r2./(4*vis*age)))));
    v = v - turbulences(k,3)/2*pi* (((x-xc)./r1).*(1-exp(-(r1./(4*vis*age)))) - ((x-xc)./r2).*(1-exp(-(r2./(4*vis*age)))));
end

quiver(x,y,u,v);
grid on;

感谢您的帮助!

【问题讨论】:

  • quiver(x, y, u./abs(u), v./abs(v))?
  • 好主意,谢谢!
  • 添加为答案。

标签: matlab


【解决方案1】:

这样做的一种方法是将向量的每个分量标准化为 +- 1,以保持它们的方向。

un = u./abs(u); % normalized u
vn = v./abs(v); % normalized v
quiver(x, y, un, vn)

【讨论】:

  • 因为 u 和 v 不是相互独立的,所以我使用了:value = sqrt(u.^2 + v.^2); quiver(x,y,u./betrag,v./betrag); 谢谢!
猜你喜欢
  • 2014-07-13
  • 2022-06-17
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多