Matlab meshgrid 绘制二维网格

最近要用matlab画二维网格,网上查阅和实践后,做一下总结。

一、利用meshgrid绘制二维网格的正确做法

xtick = linspace(10,20,51);

ytick = linspace(0,2*pi,21);

[X,Y] = meshgrid(xtick,ytick);

plot(X, Y, 'k', X', Y', 'k');

axis([10 20 0 2*pi]);

绘图结果如下:

到这儿就结束了。接下来的内容是我走过的坑和原因分析,不感兴趣的可以直接跳过。

二、错误示例

一开始经过网上搜索,发现有二维网格绘制的相关例子,一个简单例子如下:

xtick = linspace(0,10,21);

ytick = linspace(0,10,21);

[X,Y] = meshgrid(xtick,ytick);

plot(X,Y,'k',Y,X,'k');

绘图如下:

一看就是我想要的图,直接根据这个例子,开始动手:

xtick = linspace(10,20,51);

ytick = linspace(0,2*pi,21);

[X,Y] = meshgrid(xtick,ytick);

plot(X, Y, 'k', Y, X, 'k');

画出来是这样的,傻眼了。。。网格没有画到一起,和我想的不一样。。。

经过仔细研究meshgrid这个函数的输出,以及画出来的图,又重新修改了程序,如第一部分的正确示例所示(只有plot命令做了修改)。

三、原因

首先研究一下Meshgrid的输入输出

直接截取官方说明:

[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。

举个官方的例子:

x=1:3;

y=1:5;

[X,Y]=meshgrid(x,y);

输出X,Y看看长什么样

plot(X,Y),查看是如何画图的,如下图:有三条竖直线,分别是x=1x=2x=3。其画图次序为:X1列和Y的第1列(红线),X2列和Y2列(绿线),以及X3列和Y的第3列(蓝线)。

接着plot(Y,X), 继续查看绘图情况,如下图:有三条水平线,分别是y=1y=2y=3。其画图次序为:Y1列和X的第1列(红线),Y2列和X2列(绿线),以及Y3列和X的第3列(蓝线)。

可以发现,利用plot命令画矩阵时,它会按照对应列进行绘图。且,第一个矩阵会作为横坐标值、第二个矩阵作为纵坐标值进行绘图。

接着我们再研究一下,如何在plot(X,Y)的基础上继续把我们想要的水平线画上,即y=1y=2,…,y=5

先看一下下图中的y=1的水平线,其坐标点分别为(1,1),(2,1)(3,1),这三个坐标值分别对应X矩阵的第1行和Y矩阵的第1行。这样我们就可以把XY矩阵转置再plot(X',Y')就可以得到5条水平线。

最后,plot(X,Y,'k',X',Y','k');可以得到下图。

总结:出错的原因在于没有真正理解用plot命令画两个矩阵时程序是如何执行的。

注:如果横坐标和纵坐标的坐标范围和格点步长是一样的,那么X’Y是相同的,Y’X是相同的,所以用plot(X,Y,'k',Y,X,'k')不会出现问题。

看来还是不能偷懒-_-!

(原创-转载请注明出处)

参考:

https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html

https://blog.csdn.net/zhanghanqmx/article/details/121891071

智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识点解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“橙点同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值