Effacer les filtres
Effacer les filtres

Why is the size of the function different in plot3 and quiver3?

1 vue (au cours des 30 derniers jours)
Pijush
Pijush le 20 Sep 2017
Commenté : Chad Greene le 20 Sep 2017
f = 10^8;
x = 0:0.1:5;
c=3*10^8;
z =sin(2*pi*x*f/c+f*x/c);
y =sin(2*pi*x*f/c+f*x/c+pi/2);
o = zeros(size(x));
quiver3(x,o,o,o,z,o,'LineStyle','--');
hold on
quiver3(x,o,o,o,o,y,'LineStyle','--')
hold on
quiver3(x,o,o,o,z,y,'LineStyle','-')
hold on
plot3(x,z,o)
hold on
plot3(x,o,y)
hold on
plot3(x,z,y)
axis square
output:

Réponse acceptée

Chad Greene
Chad Greene le 20 Sep 2017
Modifié(e) : Chad Greene le 20 Sep 2017
The quiver and quiver3 functions automatically scale the vectors. To turn off automatic scaling, add a 0 just before setting the 'LineStyle'. That is,
quiver3(x,o,o,o,z,o,0,'LineStyle','--');
hold on
quiver3(x,o,o,o,o,y,0,'LineStyle','--')
quiver3(x,o,o,o,z,y,0,'LineStyle','-')
  3 commentaires
Pijush
Pijush le 20 Sep 2017
Thank you! I have one more problem the all the axes are in different scales i.e. lets say z axis shows 2 units while y axis shows 6 units so they should be shown equal in length on screen but here they are equal, is there any way to show them with the size proportional to their values?
Chad Greene
Chad Greene le 20 Sep 2017
You can set the relative aspect ratio of a plot with daspect. To make x, y, and z axes all equal just do
daspect([1 1 1])

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Vector Fields dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by