MATLAB 中的 3D 箭袋或矢量图

Ammar Ali 2024年2月15日
MATLAB 中的 3D 箭袋或矢量图

本教程将讨论使用 MATLAB 中的 quiver3() 函数创建 3D 箭袋或矢量图。

使用 MATLAB 中的 quiver3() 函数创建 3D 箭袋或矢量图

我们可以使用 MATLAB 的内置函数 quiver3() 来绘制 3D 颤动图或矢量图。

标量仅包含大小,而矢量包含大小和方向。我们可以使用 plot3() 函数创建标量数据的 3D 图,但我们不能使用 plot3() 函数绘制矢量数据,因为该函数不会绘制矢量的方向。

在向量的情况下,我们可以使用 quiver3() 函数,它将绘制向量的大小和方向。例如,让我们创建一个矩阵并将其绘制在具有方向的 3D 平面上。请参阅下面的代码。

clc
m = [1:10 ;10:-1:1;1:10];
quiver3(m,m,m,m)

输出:

3D 箭袋图

我们必须在 quiver3() 函数中至少传递四个输入,以绘制具有由最后三个输入指定的方向分量的箭头。

所有四个输入的大小应该相同。最后三个输入是方向分量,第一个输入是 z 轴,方向分量将沿 z 轴绘制。

如果第一个输入是向量,那么箭头的 x 坐标将从 1 到第一个输入中的元素个数,y 坐标都等于 1。如果第一个输入是矩阵,那么 x 箭头的坐标将从 1 到输入矩阵中的列数,y 坐标将从 1 到输入矩阵中的行数。

除了传递单个轴,我们还可以在 quiver3() 函数中传递三个轴,x、y 和 z。现在箭头将根据三个输入坐标而不是一个坐标延伸。

我们还可以设置 quiver3() 函数的其他属性,如箭头的长度、线条规格、线条宽度、箭头显示、箭头长度的自动缩放和比例因子。

默认情况下,箭头缩放因子会缩放箭头,使它们不会重叠,但我们也可以将其关闭。默认情况下,箭头的颜色设置为 auto,但我们可以通过使用 color 和 Color 属性的名称为它们指定任何颜色。

默认情况下,线宽设置为 0.5,但我们可以使用 LineWidth 属性将其设置为任何正数值。默认情况下箭头显示是打开的,但我们可以使用 ShowArrowHead 属性将其关闭。

autoscale 默认是打开的,但我们可以使用 AutoScale 属性关闭它。默认情况下,自动缩放因子的值设置为 0.9,但我们可以使用 AutoScaleFactor 将其设置为任何标量值。

我们还可以使用 xlabel()ylabel()zlabel()title() 函数设置图的标签和标题。例如,让我们更改上述箭袋图的一些属性。请参阅下面的代码。

clc
m = [1:10 ;10:-1:1;1:10];
quiver3(m,m,m,m,'LineWidth',2,'Color','red','AutoScale','off')
xlabel('x-axis')
ylabel('y-axis')
zlabel('z-axis')
title('Quiver Plot')

输出:

改变箭袋图的属性

在输出中,箭头重叠,因为自动缩放已关闭。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Plot

相关文章 - MATLAB 3D Plot