来自单个矩阵的箭袋

Quiver from a single matrix

我有一个矩阵(在 Matlab 中),我需要用箭袋图绘制它,但我不知道如何将它变成 "quiver plot-able form"。有什么命令可以改变它吗?我在 MathWorks 主页上看到了一些使用 peaks 函数的示例,但我无法让它工作。

我的矩阵非常大,有很多 NaN,所以我创建了一个较小的版本。

Temperature = [ 1 2 2 2   3   4 6 7 ;
                1 2 3 4   4   5 6 7 ;
                2 3 4 NaN NaN 6 8 9 ;
                3 4 5 NaN NaN 7 8 9 ;
                4 4 6 6   7   8 10 11;
                4 5 7 7   8   9 11 12];
contour(Temperature)

%quiver(Temperature)

在评论中,您可以找到我使用的文档中的示例代码。除了知道尺寸按 [Y,X,Z] 排序以获得匹配的网格外,它主要是复制和粘贴

% figure
figure
% [X,Y] = meshgrid(-2:.2:2);
Temperature = [ 1 2 2 2   3   4 6 7 ;
                1 2 3 4   4   5 6 7 ;
                2 3 4 NaN NaN 6 8 9 ;
                3 4 5 NaN NaN 7 8 9 ;
                4 4 6 6   7   8 10 11;
                4 5 7 7   8   9 11 12];
[X,Y] = meshgrid(1:size(Temperature,2),1:size(Temperature,1));
% Z = X.*exp(-X.^2 - Y.^2);
Z=Temperature;
% [DX,DY] = gradient(Z,.2,.2);
[DX,DY] = gradient(Z,1,1);
% contour(X,Y,Z)
contour(X,Y,Z)
% hold on
hold on
% quiver(X,Y,DX,DY)
quiverscaling=3;
quiver(X,Y,DX,DY,quiverscaling)
% colormap hsv
colormap hsv
% hold off
hold off