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

3 次查看(过去 30 天)
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:

采纳的回答

Chad Greene
Chad Greene 2017-9-20
编辑:Chad Greene 2017-9-20
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 个评论
Pijush
Pijush 2017-9-20
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 2017-9-20
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])

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Vector Fields 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by