文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MATLAB中quiver函数用法

2023-10-21 15:37

关注

目录

语法

说明

示例

创建箭头图

禁用自动缩放

绘制梯度和等高线

指定箭头颜色

指定箭头图的坐标区

在创建后修改箭头图


        quiver函数的功能是绘制箭头图或向量图。

语法

quiver(X,Y,U,V)quiver(U,V)quiver(___,scale)quiver(___,LineSpec)quiver(___,LineSpec,'filled')quiver(___,Name,Value)quiver(ax,___)q = quiver(___)

说明

quiver(X,Y,U,V) 在由 X 和 Y 指定的笛卡尔坐标上绘制具有定向分量 U 和 V 的箭头。例如,第一个箭头源于点 X(1) 和 Y(1),按 U(1) 水平延伸,按 V(1) 垂直延伸。默认情况下,quiver 函数缩放箭头长度,使其不重叠。

quiver(U,V) 在等距点上绘制箭头,箭头的定向分量由 U 和 V 指定。

quiver(___,scale) 调整箭头的长度:

quiver(___,LineSpec) 设置线型、标记和颜色。标记出现在由 X 和 Y 指定的点上。如果使用 LineSpec 指定标记,则 quiver 不显示箭尖。要指定标记并显示箭尖,请改为设置 Marker 属性。

quiver(___,LineSpec,'filled') 填充由 LineSpec 指定的标记。

quiver(___,Name,Value) 使用一个或多个名称-值对组参数指定箭头图属性。有关属性列表,请参阅 Quiver 属性。在所有其他输入参数之后指定名称-值对组参数。名称-值对组参数应用于箭头图中的所有箭头。

quiver(ax,___) 在 ax 指定的坐标区中而不是当前坐标区 (gca) 中创建箭头图。参数 ax 可以置于前面的语法中的任何输入参数组合之前。

q = quiver(___) 返回 Quiver 对象。此对象对于在创建箭头图后控制其属性非常有用。

示例

创建箭头图

        加载表示北美上空气流的采样数据。对于此示例,选择该数据的子集。

load('wind','x','y','u','v')X = x(11:22,11:22,1);Y = y(11:22,11:22,1);U = u(11:22,11:22,1);V = v(11:22,11:22,1);

        创建所选子集的箭头图。向量 X 和 Y 表示每个箭头的起始点位置,U 和 V 表示每个箭头的定向分量。默认情况下,quiver 函数会缩短箭头,使其不重叠。调用 axis equal 以沿每个轴使用相等的数据单位长度。这会使箭头指向正确的方向。

quiver(X,Y,U,V)axis equal

        如图所示:

禁用自动缩放

        默认情况下,quiver 函数会缩短箭头长度,使其不重叠。将 scale 参数设置为 0 可禁用自动缩放,从而完全由 U 和 V 来确定箭头长度。

        例如,使用 meshgrid 函数创建一个由 X 和 Y 值组成的网格。使用这些值指定定向分量。然后,创建一个没有自动缩放的箭头图。

[X,Y] = meshgrid(0:6,0:6);U = 0.25*X;V = 0.5*Y;quiver(X,Y,U,V,0)

        如图所示:

绘制梯度和等高线

        绘制函数 z=xe−x2−y2 的梯度和等高线。使用 quiver 函数绘制梯度,使用 contour 函数绘制等高线。

        首先,创建一个由等间距的 x 和 y 值组成的网格。使用它们来计算 z。然后,通过指定点之间的间距,求得 z 的梯度。

spacing = 0.2;[X,Y] = meshgrid(-2:spacing:2);Z = X.*exp(-X.^2 - Y.^2);[DX,DY] = gradient(Z,spacing);

        将梯度向量显示为一个箭头图。然后,在相同的坐标区中显示等高线。通过调用 axis equal,调整显示以使梯度向量垂直于等高线。

quiver(X,Y,DX,DY)hold oncontour(X,Y,Z)axis equalhold off

        如图所示:

指定箭头颜色

        创建一个箭头图,并指定箭头的颜色。

[X,Y] = meshgrid(-pi:pi/8:pi,-pi:pi/8:pi);U = sin(Y);V = cos(X);quiver(X,Y,U,V,'r')

        如图所示:

指定箭头图的坐标区

        创建一个由 X 和 Y 值以及两组 U 和 V 定向分量组成的网格。

[X,Y] = meshgrid(0:pi/8:pi,-pi:pi/8:pi);U1 = sin(X);V1 = cos(Y);U2 = sin(Y);V2 = cos(X); 

        创建一个具有两个坐标区 ax1 和 ax2 的分块布局图。想每个坐标区添加一个箭头图和标题。(在 R2019b 之前,使用 subplot 而不是 tiledlayout 和 nexttile。)

tiledlayout(1,2)ax1 = nexttile;quiver(ax1,X,Y,U1,V1)axis equaltitle(ax1,'Left Plot')ax2 = nexttile;quiver(ax2,X,Y,U2,V2)axis equaltitle(ax2,'Right Plot')

        如图所示:

在创建后修改箭头图

        创建一个箭头图并返回箭头图对象。然后,删除箭尖并在每个箭尖的起始点添加点标记。

[X,Y] = meshgrid(-pi:pi/8:pi,-pi:pi/8:pi);U = sin(Y);V = cos(X);q = quiver(X,Y,U,V);q.ShowArrowHead = 'off';q.Marker = '.';

        如图所示:

  X — 箭头起始点的 x 坐标,Y — 箭头起始点的 y 坐标,U — x 分量,V — y 分量,LineSpec — 线型、标记和颜色,scale — 箭头缩放因子,ax — 目标坐标区。

提示
        要使用极坐标创建箭头图,请首先使用 pol2cart 函数将其转换为笛卡尔坐标。​​​​​​​        

来源地址:https://blog.csdn.net/jk_101/article/details/128780075

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯