Matlab --- 如何用matlab在三维坐标系中画一个三维向量

用MATLAB画三维向量

        前两天,我在写Gram-Schmidt正交化的文章时,想到最好用matlab把还没有经过正交化计算的原始向量,和已经经过正交化处理后的正交基,在三维坐标系中,用图像的方式表示出来。这样可以更加直观的看到向量与向量之间的“垂直”,而不是通过计算向量之间的内积去证明他们“正交”。

        事实上,我之前多次有过在三维坐标系中作图的需求,一直也没有找到非常合适的。比如说,在三维坐标系中画一个点,等。这一次,我在画三维向量的时候,无意中找到了一个函数quiver3(),他可以实现在三维坐标系中画一个或多个三维向量的问题。

1,首先,我们用quiver3函数画一个向量v=[1,2,8]

先定义向量的坐标原点为[0,0,0]

X=[0];
Y=[0];
Z=[0];

定义一个三维向量

U=[1];
V=[2];
W=[8];

画图

figure;
quiver3(X,Y,Z,U,V,W,0,'LineWidth',1)

其中,“W”后面的参数“0”,表示的是对图像中向量长度的缩放(只能是一个正整数,例如2,这就是说,图像中向量的长度是实际向量长度的两倍),也就是上面语法中的Scale。一般情况下,如果你不输入scale参数,例如,直接使用quiver3(X,Y,Z,

### 使用已知的三个单位向量创建并显示三维坐标系 为了在 MATLAB 中使用给定的三个单位向量来定义一个新的三维坐标系,可以通过以下方式实现: 1. **准备数据** 假设已经有一个原点 `O` 和三个单位方向向量 `u`, `v`, `w` 来表示新的坐标轴的方向。 ```matlab % 原点位置 (可以根据实际情况调整) origin = [0; 0; 0]; % 单位向量 u, v, w 定义新坐标系的 x', y', z' 轴方向 u = [1; 0; 0]; % 新 X 方向 v = [0; 1; 0]; % 新 Y 方向 w = [0; 0; 1]; % 新 Z 方向 ``` 2. **绘制原始坐标系** 利用 `quiver3()` 函数可以在三维空间内出箭头代表各个坐标轴[^1]。 ```matlab figure; hold on; % 绘制标准直角坐标系XYZ轴线段 scaleFactor = 1.5; % 控制箭头长度的比例因子 quiver3(0, 0, 0, scaleFactor*u(1), scaleFactor*u(2), scaleFactor*u(3),'r','LineWidth',2); text(scaleFactor*u(1), scaleFactor*u(2), scaleFactor*u(3)+0.1,'X'); quiver3(0, 0, 0, scaleFactor*v(1), scaleFactor*v(2), scaleFactor*v(3),'g','LineWidth',2); text(scaleFactor*v(1)-0.1, scaleFactor*v(2), scaleFactor*v(3)+0.1,'Y'); quiver3(0, 0, 0, scaleFactor*w(1), scaleFactor*w(2), scaleFactor*w(3),'b','LineWidth',2); text(scaleFactor*w(1), scaleFactor*w(2), scaleFactor*w(3)+0.1,'Z'); grid on; xlabel('World X'); ylabel('World Y'); zlabel('World Z'); title('Custom Coordinate System with Given Unit Vectors'); axis equal; view([37.5, 30]); ``` 上述代码片段展示了如何基于指定的单位向量构建一个自定义的三维坐标系统,并将其可视化出来。这里选择了红色、绿色和蓝色分别对应于新建坐标系下的 X’、Y’ 及 Z’ 轴,同时设置了标签以便识别各条轴线所指代的空间方位。 3. **应用变换矩阵(如果需要的话)** 当涉及到更复杂的场景比如旋转时,则可能需要用到由这三个基底组成的正交矩阵来进行相应的几何变换操作[^3]。 4. **进一步定制化展示效果** 还可以继续添加更多的图形元素或者修改现有属性以满足特定需求,例如改变视角角度(`view`)、设置不同的颜色方案或是增加网格辅助线等。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

松下J27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值