Matlab 绘制 - 点和向量:向量加减的方法和源码

article/2025/5/14 11:42:19

前言:

一些博客就是转了Matlab 的中文说明,可是他那个说明,他自己都说了不是很对。

本文从实践出发,详细介绍Matlab对\huge \mathbb{R}^{n} 坐标空间的点和向量的绘制方法。


1 点的概念和画法:

1.1 一个平面上的点

plot(2, 3, '.', 'MarkerSize', 16,"Color",'r');

【案】,这个例子里面,绘制了一个红色的点,坐标在笛卡尔坐标的(2,3)。

1.2 一个空间里的点:

fig1 = figure(1)
plot3(1, 2,3, '.', 'MarkerSize', 16,"Color",'r')

1.3 一个空间里面2个点:

fig1 = figure(1)
plot3(1, 2,3, '.', 'MarkerSize', 16,"Color",'r')
hold on
plot3(4, 5,6, '.', 'MarkerSize', 16,"Color",'b')

向量的概念:


2 绘制向量的方法:

2.1 一个二维向量的绘制:

代码绘制了三个不同起点的向量, 

fig1 = figure(1)
scale = 1;
quiver(0,0,2,3,scale,'b');
grid on;
hold on;
quiver(1,1,2,3,scale,'g');
grid on;
hold on;
quiver(4,1,2,3,scale,'r');
grid on;
% 前面的两个数表示二维向量的起点坐标
% 后面的两个数表示二维向量的终点坐标
% scale=1表示对该向量的长度不进行任何伸缩
% 'b'代表蓝色

2.2 一个三维向量的绘制:

scale = 1;
quiver3(0,0,0,1,1,1,scale,'b');
hold on;
quiver3(1,1,0,1,1,1,scale,'r');
hold on;
quiver3(6,1,0,1,1,1,scale,'g');
% 前面的三个数表示三维向量的起点坐标
% 后面的三个数表示三维向量的终点坐标

2.3 向量加减的绘制:

 2.3.1 \huge \mathbb{R}^{^{2}}维度上

fig1 = figure(1)
scale = 1;
quiver(0,0,2,3,scale,'b');
grid on;
hold on;
quiver(2,3,1,3,scale,'g');
grid on;
hold on;
quiver(0,0,2+1,3+3,scale,'r');
grid on;

2.3.2 

 

scale = 1;
quiver3(0,0,0,1,1,1,scale,'b');
hold on;
quiver3(1,1,1,2,2,0,scale,'r');
hold on;
quiver3(0,0,0,3,3,1,scale,'g');

3 使用参考:

1 函数:quiver 和向量场的画法

quiver(X,Y,U,V) plots arrows with directional components U and V at the Cartesian coordinates specified by X and Y.【X,Y为向量在笛卡尔的起点,向量的水平移动单位倍数为U,垂直移动单位倍数为V】【案,向量的理解中重要的概念就是instruction,就是指的向量的各个坐标分量的单位坐标步长数目】

For example, the first arrow originates from the point X(1) and Y(1), extends horizontally according to U(1), and extends vertically according to V(1). By default, the quiver function scales the arrow lengths so that they do not overlap.

【quiver 函数看起来就是遵循这个规则,后面的解释也是验证了这一段,从(1,1)为起点,然后垂直方向延伸【移动】一个单元v(1),然后水平方向延伸一个单元U(1),当然为了,避免向量箭头会重叠,他i自动缩放重叠的向量,这一段暂时还没有找到合适的例子来验证实践】

【官网,给出了一个绘制矢量图的例子,绘制北美风速的矢量图】

load wind.mat;
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);
quiver(X,Y,U,V)
axis equal

这里用到了wind.mat的开源数据:【这个在本文的下一节有介绍】

【Franklin案,这里选取了第11到22行,11到22列的位置的传感器1的位置和风速数据,然后调用quiver进行绘制,我们可以理解为,有12*12个向量组成的一个向量阵】

 【这里箭头的长度,就是向量的长度,比较形象展示了风的速度,同时quiver函数有避免重叠的功能,所以,部分向量的长度应该做了调整】

2 wind data

3-D data on air currents over North America. The data consists of (x,y,z) position components and (u,v,w) velocity components.

File Size: 142 KB

Data Size: Six matrices of size 35-by-41-by-15

load wind.mat
【wind data是一个3维的数据集,是北美空气流动的数据集,包括,xyz的一个位置元素,和一个uvw的速度元素,具体wind数据的使用,在MT的一个风能的视频介绍里面有很详细的解释】

用MT load 数据后,我们看的wind data的具体情况:

确实是6个矩阵,每个矩阵都是35-by-41-by-15

 我们先看一下位置数据x矩阵,Y矩阵,U矩阵:

可以看到表征位置的,XYZ的矩阵数据,在不同的行上X的值相同,Y值不同,但是,在Page 上对应的话,都是相同,有理由相信Page就是传感器的ID,大约有15个传感器。

然后,U,V的值为传感器测的不同反向上的风速等参数,这个数据随机性比较大。

XYU
val(:,:,1) =val(:,:,5) =val(:,:,1) =val(:,:,10) =val(:,:,1) =val(:,:,2) =
 列 1列 1
  列 1  列 1  列 1  列 1
70.187970.1879
70.187970.187917.499917.49990.5685-2.8479
70.187970.187918.749918.74990.5685-2.8479
70.187970.187919.999919.99990.5685-2.8479
70.187970.187921.249921.24990.8791-2.2267
70.187970.187922.499922.49991.1897-1.295
70.187970.187923.749923.74991.5003-0.3632
70.187970.187924.999924.99991.50030.5685
70.187970.187926.249926.24992.12142.1214
70.187970.187927.499927.49993.05313.3637
70.187970.187928.749928.74994.6066.1589
70.187970.187929.999929.99994.6067.4013
70.187970.187931.249931.24994.91669.2647
70.187970.187932.499932.49994.916610.507
70.187970.187933.749933.74995.227213.9234
70.187970.187934.999934.99995.227215.4763
70.187970.187936.249936.24995.227215.4763
70.187970.187937.499937.49995.537817.0292
70.187970.187938.749938.74996.158920.135
70.187970.187939.999939.99995.537819.8244
70.187970.187941.249941.24993.363718.2715
70.187970.187942.499942.49991.500313.9234
70.187970.187943.749943.74990.879110.507
70.187970.187944.999944.99990.25795.2272
70.187970.187946.249946.2499-0.67381.5003
70.187970.187947.499947.4999-2.2267-3.1584
70.187970.187948.749948.7499-3.1584-5.6431
70.187970.187949.999949.9999-3.7796-5.6431
70.187970.187951.249951.2499-4.4008-6.8854
70.187970.187952.499952.4999-4.7113-8.4383
70.187970.187953.749953.7499-3.7796-8.1277
70.187970.187954.999954.9999-2.5373-7.196
70.187970.187956.249956.2499-1.295-6.2642
70.187970.187957.499957.4999-0.9844-4.7113
70.187970.187958.749958.7499-1.295-3.1584
59.999959.9999-2.5373-2.8479
  列 2  列 2
  列 2  列 2  列 2  列 2
71.790771.7907
71.790771.790717.499917.49990.5685-2.5373
71.790771.790718.749918.74990.5685-2.5373
71.790771.790719.999919.99990.8791-2.5373
71.790771.790721.249921.24990.8791-1.6055
71.790771.790722.499922.49991.1897-0.9844
71.790771.790723.749923.74991.50030.2579
71.790771.790724.999924.99991.18970.5685
71.790771.790726.249926.24992.12143.0531
71.790771.790727.499927.49993.67435.5378
71.790771.790728.749928.74993.36376.1589
71.790771.790729.999929.99993.36377.0907
71.790771.790731.249931.24994.29558.6436
71.790771.790732.499932.49994.91669.5753
71.790771.790733.749933.74995.227212.0599
71.790771.790734.999934.99995.537816.408
71.790771.790736.249936.24994.916617.3398
71.790771.790737.499937.49994.916616.408
71.790771.790738.749938.74994.60616.7186
71.790771.790739.999939.99994.60617.0292
71.790771.790741.249941.24994.295517.0292
71.790771.790742.499942.49990.568512.0599
71.790771.790743.749943.74991.50039.5753
71.790771.790744.999944.99990.87915.5378
71.790771.790746.249946.24990.25792.432
71.790771.790747.499947.4999-1.6055-2.8479
71.790771.790748.749948.7499-2.5373-5.3325
71.790771.790749.999949.9999-2.8479-5.6431
71.790771.790751.249951.2499-2.8479-6.2642
71.790771.790752.499952.4999-3.469-6.8854
71.790771.790753.749953.7499-2.8479-6.8854
71.790771.790754.999954.9999-1.295-6.2642
71.790771.790756.249956.2499-0.6738-4.4008
71.790771.790757.499957.4999-2.2267-3.1584
71.790771.790758.749958.7499-2.8479-3.7796
59.999959.9999-2.8479-2.8479

参考:

Quiver or vector plot - MATLAB quiver (mathworks.com)

 matlab中向量的绘制方法_陈腾飞同学的博客-CSDN博客_matlab画向量

Matlab 画向量图和平面图 - 知乎 (zhihu.com)


http://chatgpt.dhexx.cn/article/8MHx4th0.shtml

相关文章

oracle一基础查询:单表,多表查询(交叉,内联,外联),分组聚合,子查询语法。

摘要&#xff1a;条件查询&#xff0c;别名&#xff0c;排序&#xff0c;聚合函数&#xff0c;where&#xff0c;having&#xff0c;联接查询&#xff0c;where in/exists/><子查询&#xff0c;&#xff0c;rownum伪列&#xff0c;模糊查询。 查询所有信息 select *from…

wps交叉表_使用WPS图表功能中的堆叠条形图制作日程交叉图

微软的项目&#xff0c;作为一个老式的项目管理软件&#xff0c;被许多朋友在工作中使用。它的功能相对完善&#xff0c;与微软的sharepoint服务器相结合&#xff0c;功能非常强大。一般来说&#xff0c;我们很少使用微软项目的所有功能。毕竟&#xff0c;与中国人的使用习惯还…

sql 交叉查询

日常开发中遇到多表查询时&#xff0c;首先会想到 INNER JOIN 或 LEFT OUTER JOIN 等等&#xff0c;但是这两种查询有时候不能满足需求。比如&#xff0c;左表一条关联右表多条记录时&#xff0c;我需要控制右表的某一条或多条记录跟左表匹配。貌似&#xff0c;INNER JOIN 或 L…

交叉表和透视表

交叉表: 用于计算一列数据对于另一列数据的分组个数&#xff08;用于统计分组频率的特殊透视表&#xff09; pd.crosstab(value1,value2)透视表&#xff1a;将原有的dataframe的列分别作为行索引和列索引&#xff0c;然后对指定的列应用聚集函数 data.pivot_table() 探究股票的…

【交叉表查询】行列转换的魅力

本文主要是讲一下行列转换&#xff0c;也就是大家经常讲的交叉表查询。 行列转换在实际的应用中非常的实用&#xff0c;可以大大的减少工作量。 很多时候&#xff0c;在Excel中处理数据时&#xff0c;我们需要统计每个月的销量或者需要填写每个月的销量&#xff0c;如下图 &a…

Mysql5 实现交叉表查询

交叉表、行列转换和交叉查询经典 一、什么是交叉表 “交叉表”对象是一个网格&#xff0c;用来根据指定的条件返回值。数据显示在压缩行和列中。这种格式易于比较数据并辨别其趋势。它由三个元素组成&#xff1a; 行 列 摘要字段 “交叉表”中的行沿水平方向延…

access交叉表

一、交叉表查询每门课的成绩 交叉表&#xff1a;左边是行标题&#xff0c;上面是列标题&#xff0c;交叉的是值。更改字段名:更改字段名用双引号 二、查询每个年级的每门课的成绩 [表名]![字段名] 三、生成表 生成表&#xff1a;在一张表上生成一张新表原来只有三张表 点击运行…

access如何查询两张表的内容_Access使用技术2:使用交叉表查询向导进行每日汇总...

个人主页:http://office-access.cn公众号:DataMapHuanyu Access使用技术2:使用交叉表查询向导进行每日汇总 Access交叉表查询可以合并每日的量,日汇总功能对于大量数据统计是很有帮助的,Excel很难胜任。 1.技术要求 将不同的表用Union Select合并到一张表中,不能用两张表…

【Access数据库】关于带参数的交叉表查询

查了一圈&#xff0c;网上关于带参数的交叉表查询的介绍很少。 1.用SQL语句写带参数的交叉表查询的话&#xff0c;不能用having语句设置条件&#xff0c;必须用where。 2.where语句里不能像普通参数查询一样写模糊查询&#xff0c;必须是精确的。 3.即使用了where&#xff0c;也…

在MySQL中实现交叉表查询1(静态交叉表)

在MySQL中实现交叉表查询1&#xff08;静态交叉表&#xff09; 一、什么是交叉表 交叉表查询是将来源于某个表中的字段进行分组&#xff0c;一组列在交叉表左侧&#xff0c;一组列在交叉表上部&#xff0c;并在交叉表行与列交叉处显示表中某个字段的各种计算值。比如&#xf…

5.7.1 使用向导创建交叉表查询

示例ACCESS数据库下载链接&#xff1a; https://download.csdn.net/download/ngbshzhn/20979935 使用交叉表查询计算和重构数据&#xff0c;可以简化数据分析&#xff0c;交叉表查询计算数据的总和、平均值、计数或其他类型的总计值&#xff0c;并将它们分组。一组列在数…

5.7.2 使用设计视图创建交叉表查询

交叉表查询由三部分组成&#xff0c;行标题字段、列标题字段和值字段。按照Access的规定&#xff0c;列标题字段和值字段只能各有一个&#xff0c;行标题字段最多可以有3个。 (1)打开“罗斯文”数据库&#xff0c;在“创建”选项卡上的“查询”组中&#xff0c;单击“查询设…

计算机研究生学习路线

一、研究方向 研究方向来源&#xff1a;导师指定、咨询师兄师姐继续沿着他们的方向做深入研究、自己选方向。本节主要介绍自己如何选方向。 1.1paperswithcode 首先&#xff0c;进入The latest in Machine Learning | Papers With Code&#xff0c;我们可以看到主菜单栏&…

本人以及硕士期间研究介绍

读者们大家好 &#xff5e; 这篇博客是本人的第一篇博文&#xff0c;我将对自己的研究内容做一下简要的梳理&#xff0c;也欢迎感兴趣的小伙伴和我一起讨论。 &#xff5e; 我是一名工科硕士&#xff0c;本科就读于北京理工大学宇航学院&#xff0c;硕士期间申请硕博连读继续…

计算机学硕研究计划,博士研究生学习计划和研究计划

博士研究生学习计划和研究计划 时间是箭,去来迅疾,我们又将有新的学习内容,迎来新的挑战,是时候写学习计划了哦。好的学习计划都具备一些什么特点呢?以下是小编收集整理的博士研究生学习计划和研究计划,仅供参考,希望能够帮助到大家。 为了给博士学习生活开好头,不断学…

中职生职业生涯规划书2000字学计算机,计算机专业中职生职业生涯规划书

计算机专业中职生职业生涯规划书 下面是小编为中职生计算机专业整理的职业生涯规划书范文,供参考。 一、前言 九年义务教育,我们在儿童的懵懂、自由的嬉戏和父母的纵容中,快乐的度过;三年的高中生活,我们在学生们逐渐激烈的竞争、老师日益严肃的面孔和漫天飞舞的试卷中,艰…

python职业规划书_大学生职业规划书

职业生涯规划&#xff08;简称生涯规划&#xff09;&#xff0c;又叫职业生涯设计&#xff0c;是将个人与组织相结合&#xff0c;在对一个人职业生涯的主客观条件进行测定、分析、总结的基础上&#xff0c;对自己的兴趣、爱好、能力、特点进行综合分析与权衡&#xff0c;结合时…

回忆我的过去一年2020年考研以及研究生规划

目录 一、启发二、回忆考研录&#xff08;多图警告&#xff09;&#xff08;一&#xff09;大三寒假入门考研&#xff08;二&#xff09;大三下学期进入学习状态&#xff08;三&#xff09;大三暑假强化巩固知识&#xff08;四&#xff09;大四上学期冲刺考试&#xff08;五&am…

计算机专业读研期间的规划,【图片】2020考研,老学长教你如何规划!【计算机考研吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 二、关键一步——院校选择 我把各位同学的院校选择阶段分为以上几个阶段&#xff0c;因为考研这一年中&#xff0c;很多人的目标院校并不是固定不变的&#xff0c;而是随着不同阶段而改变的。学长我在大三下学期这一时间段内也多次…

源代码分析

/**/ // // 制作一个定时器&#xff0c;2位显示秒&#xff0c;2位显示分&#xff0c;用4个调节按钮调节 // 四个调节按钮为key0, key1, key2, key3分别为P3.2, P3.3, P3.4, P3.5 // 数码管用P0显示a,b,c,d,e,f,g&#xff0c;分别对应P0.0, P0.1, P0.2, P0.3, P0.4, P0.5, P0.6,…