Matlab Quiver3仅绘制了4个向量

时间:2013-08-08 09:34:39

标签: matlab graphics graph 3d

我想使用命令quiver3(X,Y,Z,M,N,O) 为了得到一个矢量场,其中所有矩阵都是10x10x10阵列,带有实数。现在我想绘制它并且只得到4个向量而不是我预期的1000个。这里有人知道,我可能做错了吗? 如果您需要更多信息,我可以提供您的意见。

1 个答案:

答案 0 :(得分:3)

假设在尝试显示数据时出现问题(而不是尝试显示不允许的数值,例如InfNaN),我认为问题在于向量的范数,只有4出现。

向量范数相对于坐标系范围的重要性很重要,如下例所示:

这里显示所有10个随机向量:

Na = 10;
[X Y Z M N O] = deal(rand(Na,1),rand(Na,1),rand(Na,1),rand(Na,1),rand(Na,1),rand(Na,1)); 
quiver3(X,Y,Z,M,N,O)

enter image description here

但是,如果某些矢量大100倍,那么只有较小的矢量出现:

mul = 1e+3;
[X Y Z M N O] = deal(rand(Na,1),rand(Na,1),rand(Na,1),...
    [mul*rand(Na/2,1);rand(Na/2,1)],...
    [mul*rand(Na/2,1);rand(Na/2,1)],...
    [mul*rand(Na/2,1);rand(Na/2,1)]);
quiver3(X,Y,Z,M,N,O)

enter image description here

同样,如果某些矢量太小,则不会出现:

mul = 1e-3;
[X Y Z M N O] = deal(rand(Na,1),rand(Na,1),rand(Na,1),...
    [mul*rand(Na/2,1);rand(Na/2,1)],...
    [mul*rand(Na/2,1);rand(Na/2,1)],...
    [mul*rand(Na/2,1);rand(Na/2,1)]);
quiver3(X,Y,Z,M,N,O)

enter image description here

根本不显示相对于轴太大或太小的矢量。

如果是缩放问题,您可能需要检查函数并查看如何缩小x,y,z的范围以使向量具有更窄的值范围,或者更改比例(对数?)所以所有数据都可以在一个图中显示。

修改

作为如何显示数据的替代方法,您可能需要考虑使用isosurfaces。这是一个例子,每个红色球体代表一个球形势的不同等值面:

enter image description here