matlab的meshgrid

文章目录

  • [一、什么是 `meshgrid`?](#一、什么是 meshgrid?)
  • 二、基本语法
  • [三、为什么需要 meshgrid?](#三、为什么需要 meshgrid?)
  • [四、meshgrid 与 ndgrid 的区别](#四、meshgrid 与 ndgrid 的区别)

一、什么是 meshgrid

meshgrid 是 MATLAB 中用于生成网格点坐标矩阵的函数,常用于三维绘图(如 surf, mesh, contour, quiver3)和数值计算。它将一维的向量扩展成二维的矩阵,以便于函数在二维空间中进行计算。


二、基本语法

复制代码
[X, Y] = meshgrid(x, y)
  • x 是一个行向量(代表 X 轴上的点)
  • y 是一个列向量(代表 Y 轴上的点)
  • X 是将 x 在每一行复制
  • Y 是将 y 在每一列复制

它们的维度相同,表示网格上的所有坐标点组合。下图可以示意其基本用法


示例 1: 基本用法

复制代码
x = 1:3;        % [1 2 3]
y = 10:10:30;   % [10 20 30]
[X, Y] = meshgrid(x, y)

输出结果:

复制代码
X =                 Y =
     1     2     3       10   10   10
     1     2     3       20   20   20
     1     2     3       30   30   30

该示例的图解示意如下


三、为什么需要 meshgrid?

很多函数的定义是形如 f(x,y),但如果你有 xy 的一维向量,你需要先生成所有点对组合,才能计算 f(x,y) 的二维结果。meshgrid 正是用来创建这个二维坐标系统的。


示例 2: 可视化函数曲面

复制代码
x = -5:0.5:5;
y = -5:0.5:5;
[X, Y] = meshgrid(x, y);
Z = sin(sqrt(X.^2 + Y.^2));   % 示例函数

% 绘图
figure
surf(X, Y, Z)

% 图像设置
xlabel('X 轴', 'FontSize', 12);
ylabel('Y 轴', 'FontSize', 12);
zlabel('Z 值', 'FontSize', 12);
title('三维波形函数图像', 'FontSize', 14);

shading interp           % 平滑颜色
colormap parula          % 设置颜色映射方案
colorbar                 % 添加颜色条
light                    % 添加光源
lighting phong           % 使用Phong光照模型
material shiny           % 材质为"发亮"

四、meshgrid 与 ndgrid 的区别

meshgridndgrid 都可以生成网格,但行为略有不同:

  • meshgrid(x, y) 会让输出维度顺序是 (Y, X),适合可视化绘图

  • ndgrid(x, y) 输出是 (X, Y)。

    [X1, Y1] = meshgrid(1:3, 4:5); % X1/Y1 是 2行×3列
    [X2, Y2] = ndgrid(1:3, 4:5); % X2/Y2 是 3行×2列

维度就会不同。

meshgrid 输出:

复制代码
X1 =                    Y1 =
    1   2   3           4   4   4
    1   2   3           5   5   5

ndgrid 输出:

复制代码
X2 =                    Y2 =
    1   1               4   5
    2   2               4   5
    3   3               4   5
相关推荐
傻啦嘿哟7 小时前
某招聘平台爬虫:爬取招聘岗位数据,分析各城市薪资水平
开发语言·爬虫·python
2501_933670798 小时前
2026秋招量化分析岗技能栈:Python、SQL、统计建模、回测项目怎么准备
开发语言·python·sql
李少兄8 小时前
JavaScript 数据类型完全指南
开发语言·javascript·ecmascript
Seoyoneh9 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
Tangyuewei9 小时前
Java 写 Agent:模型只是组件
java·开发语言
小玮看世界10 小时前
[Python]从合并区间到传感器融合区:合并区间在传感器区域融合的实际落地
开发语言·python
繁星蓝雨11 小时前
C++的设计与演进大纲(如何从C语言一步步成长为C++)
c语言·开发语言·c++·c++历史·c++演进
Evand J11 小时前
【MATLAB例程,图像降噪滤波9】自适应维纳滑动窗口滤波(Wiener)图像降噪、方法对比,有中文注释
开发语言·图像处理·计算机视觉·matlab·滑动窗口·滤波·降噪
杜大哥11 小时前
python程序:如何查看电脑【电池电量的剩余百分比】 和 【是否插入连接着充电器】?
开发语言·python
wuyk55511 小时前
Python网络爬虫入门到实战 第01章:爬虫到底是什么?原理、流程、合法性、风险全解析(零基础必看)
开发语言·爬虫·python