百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

MATLAB的quiver函数绘制箭头向量图

wptr33 2025-05-28 20:47 5 浏览

MATLAB的quiver函数绘制箭头向量图,quiver函数的基本语法如下:

基本语法

语法
quiver(x,y,u,v)
quiver(u,v)
quiver(...,scale)
quiver(...,LineSpec)
quiver(...,LineSpec,'filled')
quiver(...,'PropertyName',PropertyValue,...)
quiver(ax,...)
h = quiver(...)

说明

说明
箭头图将速度向量显示为箭头,其中分量 (u,v) 位于点 (x,y) 处。
例如,第一个向量由分量 u(1),v(1) 定义并显示在点 x(1),y(1) 处。
quiver(x,y,u,v) 在 x 和 y 中每个对应元素对组所指定的坐标处将向量绘制为
箭头。矩阵 x、y、u 和 v 必须大小相同并包含对应的位置和速度分量。但是,
如下节所述,x 和 y 还可以是向量。默认情况下,箭头缩放到刚好不重叠,
可以根据需要将箭头缩放的长一些或短一些。
quiver(u,v) 在 x-y 平面的等距点处绘制 u 和 v 指定的向量。
quiver(...,scale) 自动缩放箭头以适合网格大小,然后根据因子 scale 拉伸
它们。scale = 2 使它们的相对长度加倍,scale = 0.5 使它们的相对长度减半。
使用 scale = 0 绘制速度向量,不应用自动缩放。您还可以在绘制箭头后调整其长
度,方法就是选择 Plot Edit  工具,再选择箭头图对象,然后打开属性编辑器并
调整长度滑块。
quiver(...,LineSpec) 使用任何有效的 LineSpec 指定线型、标记符号和颜色。
quiver 在向量原点处绘制标记。
quiver(...,LineSpec,'filled') 填充 LineSpec 指定的标记。
quiver(...,'PropertyName',PropertyValue,...) 为该函数创建的箭头图对
象指定属性名称和属性值对组。
quiver(ax,...) 将图形绘制到 ax 坐标区中,而不是当前坐标区 (gca) 中。
h = quiver(...) 返回 Quiver 对象。

实例1

程序

clc;
clear all;
close all;
x = 0:0.1:2;
y = 0:0.1:2;
[x,y] = meshgrid(x,y);
u = 3*cos(x).*y;
v = 3*sin(x).*y;
figure
quiver(x,y,u,v,'r')

运行结果

实例2

程序

clc;
clear all;
close all;
x = linspace(-2, 2, 10);
y = linspace(-2, 2, 10);
[x,y] = meshgrid(x,y);
u = 3*rand(10);
v = 5*rand(10);
%%自动缩放箭头以适合网格大小,然后根据因子 scale 拉伸它们。
%scale = 2 使它们的相对长度加倍,scale = 0.5 使它们的相对长度减半。
%使用 scale = 0 绘制速度向量,不应用自动缩放。
figure;
subplot(2,2,1)
quiver(x, y, u, v,'r');
subplot(2,2,2)
quiver(x, y, u, v, 0,'b');
subplot(2,2,3)
quiver(x, y, u, v, 0.5,'c');
subplot(2,2,4)
quiver(x, y, u, v, 2,'m');

运行结果


实例3

显示箭头图的梯度

程序

clc;
clear all;
close all;
x = -2:0.2:2;
y = -2:0.2:2;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2 - Y.^2);
[DX,DY] = gradient(Z,0.2,0.2);
%gradient(F,h) 使用 h 作为每个方向上的点之间的均匀间距。
figure
contour(X,Y,Z)
hold on
quiver(X,Y,DX,DY,'r')
hold off
title('z = xe^{(-x^2 - y^2)}');
grid on;

运行结果

实例4

程序

clc
clear all
close all
x = linspace(-2, 2, 10);
y = linspace(-2, 2, 10);
[X,Y] = meshgrid(x,y);
U = 2*sin(X).*sin(Y);
V = 5*cos(Y).*cos(X);
q = quiver(X, Y, U, V);
q.ShowArrowHead = 'off';
q.Marker = 'p';
q.Color = 'r';

运行结果


参考内容

[1] 知乎作者Alien的文章《MATLAB画图技巧与实例(二十三):箭头向量图quiver和quiver3函数》,文章链接
https://zhuanlan.zhihu.com/p/360177013

[2] Mathworks帮助文档

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。


作 者 | 郭志龙

编 辑 | 郭志龙
校 对 | 郭志龙

相关推荐

IIR数字滤波器原理及实现方法

欢迎大家关注转发...

MATLAB机器学习工具箱

MATLAB机器学习工具箱MATLAB包含统计和机器学习工具箱(StatisticsandMachineLearningToolbox),其包含如下一些子模块:探索性数据分析、数据降维、机器学...

MATLAB二分法求方程的根(实例加程序)

零点的存在性定理早在高中阶段,我们就学习过函数的零点存在性定理。简单地说,对于区间[a,b]上的连续函数f(x),如果满足f(a)f(b)<=0,那么函数在[a,b]上至少存在一个零点。...

优化算法matlab大杀器 —— 实现秃鹰算法

注意:此代码实现的是求目标函数最大值,求最小值可将适应度函数乘以-1(框架代码已实现)。.代码实现...

实例讲解MATLAB绘图坐标轴标签旋转

在我们进行绘图时,需要在图片上添加上做标轴的标签,但是当数据量比较多时,例如一天24小时的数据,这时把每个小时显示在左边轴的标签上,文字内容放不下,因此需要将坐标轴标签旋转一定的角度,这样可以更好在图...

MATLAB的quiver函数绘制箭头向量图

MATLAB的quiver函数绘制箭头向量图,quiver函数的基本语法如下:基本语法...

「高中物理」电场和电势怎么理解?利用matlab工具完成可视化

高中物理给出了电场力和场强的计算方法,但是没给出电势的计算方法。下面先给出利用高中物理可接受的方法推导电势的公式可以看出电势就是场强的积分,也就是说场强是电势对距离的导数matlab做等量异种、同种...

Matlab绘制图像,imagesc和pcolor的区别【工作记录4】

注意:此文章主要针对本人在工作中遇到的问题进行记录和经验上的总结,难免存在错误和遗漏,如有任何问题,请留言,我会尽快回复。最近用Matlab绘制图像时,发现用pcolor和imagesc画图区别挺大...

Matplotlib 是Python中类似 MATLAB 的绘图工具

专栏推荐...

硬核浪漫!圣诞节给对象送礼的5个最没用小技巧

《圣诞节里吃饺子》...

MATLAB画一阶系统单位阶跃响应、单位脉冲响应、单位斜坡响应曲线

在确定系统的数学模型后,便可以用几种不同的方法去分析控制系统的动态性能和稳态性能。在经典控制理论中,常用时域分析法、根轨迹法或频域分析法来分析线性控制系统的性能。显然,不同的方法有不同的特点和适用范围...

奇怪的Matlab画图技巧系列2–不一样的线条标记

毕业季马上要到了,给大家总结一些我平常用到的奇特但是好用的Matlab画图技巧不一样的线条标记论文画图通过需要通过添加不同标记或者线形,区别不同类型的参数曲线,比较土豪的同学可以选择用颜色区别外加全部...

MATLAB画等高线的源程序和实例

源程序clearclcx=[60555951443937362944370121419191712323271415182429363937...

奇怪的Matlab画图技巧系列4–动图生成

毕业季马上要到了,给大家总结一些我平常用到的奇特但是好用的Matlab画图技巧MatlabGif动图保存毕业论文除了论文本身以外,在毕业论文的交流和最后的答辩过程中,通常需要制作PPT跟老师进行汇报...

Spring Boot 打包与部署全面指南:从基础到高级实践

前言作为Java开发者,掌握SpringBoot应用的打包与部署是必备技能。本文将全面系统地介绍SpringBoot应用的打包与部署方式,从基础到高级,涵盖各种场景和需求。...