【Matlab笔记_23】MATLAB的工具包m_map的m_image和m_pcolor区别

在MATLAB的m_map工具箱中,m_imagem_pcolor都是用于绘制地理数据的函数

主要区别

1. m_pcolor

  • 工作原理 :创建伪彩色图,数据点位于网格顶点
  • 数据结构:对于m×n的数据矩阵,会生成(m-1)×(n-1)个色块
  • 坐标要求:需要提供网格点坐标(X, Y矩阵)
  • 特点
    • 更适合不规则网格数据
    • 需要shading flatshading interp来获得平滑效果
    • 默认会在色块之间显示网格线(可通过shading flat消除)
    • 数据维度与网格维度相同

2. m_image

  • 工作原理 :直接显示图像,数据点位于色块中心
  • 数据结构:对于m×n的数据矩阵,会显示m×n个色块
  • 坐标要求:可以指定图像在地图上的位置范围
  • 特点
    • 更适合规则网格的快速显示
    • 自动处理坐标对齐
    • 显示效果更接近实际图像
    • 不会产生网格线

代码示例对比

matlab 复制代码
% 创建示例数据
lon = 120:0.5:130;
lat = 20:0.5:30;
[LON, LAT] = meshgrid(lon, lat);
data = sin(LON/5) .* cos(LAT/5);

% 初始化地图
figure(1)
m_proj('mercator', 'lon', [120 130], 'lat', [20 30]);
m_gshhs_i('color', 'k');

% 使用 m_pcolor
subplot(2,1,1)
m_pcolor(LON, LAT, data);
shading flat;  % 需要shading命令
colorbar;
title('m\_pcolor');
m_grid;

% 使用 m_image
subplot(2,1,2)
m_image(lon, lat, data);  % 注意:这里传入的是向量而非矩阵
colorbar;
title('m\_image');
m_grid;

关键差异总结

特性 m_pcolor m_image
数据位置 网格顶点 色块中心
色块数量 (m-1)×(n-1) m×n
网格线 默认有(可去除)
坐标输入 需要X,Y矩阵 可接受向量
性能 稍慢 较快
适用场景 不规则网格、科学数据 规则网格、图像数据
需要shading

使用建议

  1. 选择 m_pcolor 当

    • 数据在网格顶点上定义
    • 需要精确控制每个数据点的位置
    • 处理不规则间隔的网格数据
    • 需要与其他基于顶点的绘图函数(如m_contour)保持一致
  2. 选择 m_image 当

    • 数据代表规则网格的像元值
    • 快速显示地理参考图像
    • 需要保持数据矩阵的原始维度
    • 显示卫星图像或遥感数据
  3. 注意事项

    • 对于相同的经纬度范围,m_imagem_pcolor显示的数据会有半个网格的偏移
    • m_pcolor需要配合shading flatshading interp使用以获得最佳效果
    • m_image在坐标处理上更简洁,适合快速绘图

实际选择取决于数据结构和具体的可视化需求。

相关推荐
大明者省4 小时前
WSL2 Ubuntu22.04 GPU训练环境配置指南
人工智能·算法·计算机视觉
白狐_7985 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander2586 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
水桶学习吧_6 小时前
MTMD人致振动MATLAB-SAP2000协同优化
matlab·mtmd·sap2000
Shell运维手记6 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
杨航 AI6 小时前
O(n log n):线性对数原理拆解 这个是排序算法的黄金复杂度之一。
算法·排序算法
FakeOccupational6 小时前
【电路笔记 STM32】Cortex-M7 内核上的数据缓存(D-Cache)结构+MPU+DMA&Cache+STM32CubeMX配置
笔记·stm32·缓存
ι:7 小时前
MATLAB 与 Python 搭建无人机地面站:优势、劣势与选型逻辑
python·matlab·无人机
船厂电气自动化ai大模型7 小时前
AI大模型与数学 第32课 函数凹凸性与二阶导数:拐点求解、凹凸区间计算(10道二阶导数计算题)
数据结构·人工智能·python·深度学习·算法
动词ing7 小时前
【学习笔记】C语言(数组指针与指针数组+字符数组+函数+参数传递+字符串作为形参+递归函数+指针函数+回调函数+结构体嵌套+内存动态分配函数)
c语言·笔记·学习