コマンド quiver3(X,Y,Z,M,N,O) を使用して、すべての行列が実際のエントリを持つ 10x10x10 配列であるベクトル フィールドを取得します。今、私はそれをプロットしたかったのですが、予想される 1000 ではなく 4 つのベクトルしか得られませんでした。さらに情報が必要な場合は、コメントをお待ちしています。
1 に答える
3
Inf
(やなどの許可されていない数値を表示しようとするのではなく) データを表示しようとしたときに問題が発生すると仮定すると、問題NaN
はベクトルのノルムの範囲であり、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)
しかし、ベクトルの一部を 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)
同様に、一部のベクトルが小さすぎると、表示されません。
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)
軸に対して大きすぎたり小さすぎたりするベクトルは、まったく表示されません。
スケーリングに問題がある場合は、関数を調べて、ベクトルの値の範囲が狭くなるように x、y、z の範囲を狭める方法を確認するか、スケール (対数?) を変更してすべてのデータを 1 つの図に表示できます。
編集
データの表示方法に関する質問の代わりに、 の使用を検討することをお勧めしますisosurfaces
。以下に例を示します。各赤い球は、球状ポテンシャルの異なる等値面を表しています。
于 2013-08-08T12:53:53.377 に答える