0

我正在尝试生成一个随机旋转矩阵R并将其应用于向量。最后,我必须绘制原始向量和旋转后的向量。原始向量必须用黑色虚线绘制,旋转后的向量必须用黑色虚线绘制。我已经正确完成了每一步,除了我无法在用点旋转后绘制矢量。MATLAB 仅绘制向量的起点和终点,但不完整绘制。有趣的是,如果我尝试'k--'而不是'k.'它可以正常工作。有人可以展示我在这里缺少的东西吗?

% rand(3,1) generates a random 3 by one column vector. We use this u to plot
u=rand(3,1)*2-1;

% plot the origin
plot3(0,0,0,'.k')

% axis setting
axis vis3d
axis off

%%%%% your code starts here %%%%%
% generate a random rotation matrix R

[R,N] = qr(randn(3));

% plot the x axis 
plot3([0,1],[0,0],[0,0],'r');
text(1,0,0,'x')

% plot the y axis 
plot3([0,0],[0,1],[0,0],'g');
text(0,1,0,'y')

% plot the z axis 
plot3([0,0],[0,0],[0,1],'b');
text(0,0,1,'z')

% plot the original vector u
plot3([0,u(1)],[0,u(2)],[0,u(3)], 'k--');
text(u(1),u(2),u(3),['(',num2str(u(1),'%.3f'),',',num2str(u(2),'%.3f'),',',num2str(u(3),'%.3f'),')'])
hold on

% apply rotation and calcuate v plot the vector after rotation v
v = R*u;

% plot the new vector v
plot3([0,v(1)],[0,v(2)],[0,v(3)], 'k.');
text(v(1),v(2),v(3),['(',num2str(v(1),'%.3f'),',',num2str(v(2),'%.3f'),',',num2str(v(3),'%.3f'),')'])

%%%%% your code ends here %%%%%

我取而代之'k.'':k'它就像一个魅力。但是,我不知道发生了什么。为什么'k.'哪个不起作用?

4

1 回答 1

1

上的文档plot()清楚地说明了这一点:

. 点
-。Dash-dot line
: 虚线

因此k.只制作一个黑点作为标记(即在您指定为(x,y,z)坐标的确切点上),k:而使点到点出现虚线。

相同的语法适用于您可以指定线型的其他绘图命令,例如plot3D().

于 2020-04-01T13:29:39.837 回答