You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从等高线图提取数据并获取构成等高线的最多(x,y)坐标数

提取等高线坐标并统计最大点数

针对你的需求,你可以通过解析contour函数返回的c矩阵来获取所有等高线的坐标点,并统计出点数最多的那条等高线的坐标数量,具体步骤和代码如下:

  • 理解contour输出矩阵c的结构:
    contour返回的c是一个2行的矩阵,每条等高线的信息按以下格式存储:

    开头两列:第一列是等高线的z值,第二列是该等高线包含的坐标点数量
    后续列:依次排列该等高线的x坐标和y坐标(即第3列是第一个点的x,第4列是第一个点的y,第5列是第二个点的x,以此类推)

  • 解析代码实现:

% 从contour返回的c中解析所有等高线
max_point_num = 0;
current_idx = 1;
total_cols = size(c, 2);

while current_idx <= total_cols
    % 获取当前等高线的点数量
    point_count = c(2, current_idx);
    % 提取x、y坐标
    x_coords = c(1, current_idx+1 : current_idx+point_count);
    y_coords = c(2, current_idx+1 : current_idx+point_count);
    
    % 更新最大点数
    if point_count > max_point_num
        max_point_num = point_count;
    end
    
    % 跳转到下一条等高线的起始位置
    current_idx = current_idx + point_count + 2;
end

% 输出结果
disp(['构成整条等高线的最多(x,y)坐标数量为:', num2str(max_point_num)]);
  • 额外说明:
    • 即使你指定了单个z值(如4e-6),也可能存在多条不连通的等高线,这段代码会遍历所有这些等高线
    • 如果需要保存每条等高线的坐标,可以添加结构体或数组来存储,比如用cell数组保存每条等高线的x、y和点数

内容的提问来源于stack exchange,提问作者Arjun Krishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:00:28