【问题标题】:A set of points and vector field一组点和向量场
【发布时间】:2016-10-22 13:40:46
【问题描述】:

我有一组点,它们在某些空间坐标上显示速度矢量。我想要可视化我的数据集的向量场图。你能告诉我如何在 MATLAB 中做到这一点吗?

【问题讨论】:

    标签: matlab vector matlab-figure matlab-guide


    【解决方案1】:

    假设它是二维测量,您可以首先在您测量的每个坐标处绘制一个点,使用“scatter(x,y)”。我们很快就会看到,您不会使用第一次和最后一次测量,所以应该是:

    scatter(x(2:end-1), y(2:end-1))
    

    接下来,您需要每个向量的方向。如果您的测量频率足够高,数值导数应该会给您正确的结果。 "diff(vec)" 将返回相邻点之间差异的向量。因此您可以通过以下方式获得每个点的右侧导数:

    dy = diff(y)
    dx = diff(x)
    % to be able to differentiate even when dx=0, will replace 0 with a very small number
    for i=(dx == 0)
        dx(i) = eps
    der = dy/dx
    

    但是,您可能需要“平均”导数,您可以通过以下方式获得:

    avg_der = (der(1:end-1) + der(2:end)) / 2
    

    现在,您可以在已绘制的每个点上画一条线,dx=dx/normalization_size, dy=der * dx / normalization_size。可以画线。

    for i=1:length(avg_der)
        line([x(i+1) (x(i+1) + mean(dx(i:i+1))/NORMALIZATION)], [y(i+1) (y(i+1) + avg_der(i) * mean(dx(i:i+1))/NORMALIZATION)])
    

    【讨论】:

      猜你喜欢
      • 2020-11-01
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多