Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Matlab等值线函数中选择等值线_Matlab_Coordinates_Contour - Fatal编程技术网

从Matlab等值线函数中选择等值线

从Matlab等值线函数中选择等值线,matlab,coordinates,contour,Matlab,Coordinates,Contour,Matlab轮廓函数(和imcontour)绘制矩阵不同级别的等值线。 我想知道:如何操作此函数的输出,以便接收每个轮廓的所有(x,y)坐标以及标高? 如何使用输出[C,h]=轮廓(…)来完成上述任务?另外,我对操作底层网格不感兴趣,它是一个连续函数,只提取我在绘图上看到的相关像素 您可以使用此功能。它接受轮廓函数的输出,并返回一个结构数组作为输出。数组中的每个结构表示一条等高线。结构具有字段 v,等高线的值 x,等高线上点的x坐标 y,等高线上点的y坐标 函数s=getcontourline

Matlab轮廓函数(和imcontour)绘制矩阵不同级别的等值线。 我想知道:如何操作此函数的输出,以便接收每个轮廓的所有(x,y)坐标以及标高?
如何使用输出[C,h]=轮廓(…)来完成上述任务?另外,我对操作底层网格不感兴趣,它是一个连续函数,只提取我在绘图上看到的相关像素

您可以使用此功能。它接受
轮廓
函数的输出,并返回一个结构数组作为输出。数组中的每个结构表示一条等高线。结构具有字段

  • v
    ,等高线的值
  • x
    ,等高线上点的x坐标
  • y
    ,等高线上点的y坐标

    函数s=getcontourlines(c)

    这将给出这个图:


    “难以处理”和“不直接”并不意味着解决方案不合格。随它去吧。如果您有问题,请用您实际遇到的问题重新提问。回答很好,示例和绘图使一切都非常清楚(-:这一行有一个拼写错误:
    z=exp(-x.^2-y,^2)
    你可能想在这里用
    替换
    。除此之外,我不知道
    %
    在4年前是怎么看的,但现在
    %
    后面的文本以灰色显示,看起来不错,或者可能只是我!!
    sz = size(c,2);     % Size of the contour matrix c
    ii = 1;             % Index to keep track of current location
    jj = 1;             % Counter to keep track of # of contour lines
    
    while ii < sz       % While we haven't exhausted the array
        n = c(2,ii);    % How many points in this contour?
        s(jj).v = c(1,ii);        % Value of the contour
        s(jj).x = c(1,ii+1:ii+n); % X coordinates
        s(jj).y = c(2,ii+1:ii+n); % Y coordinates
        ii = ii + n + 1;          % Skip ahead to next contour line
        jj = jj + 1;              % Increment number of contours
    end
    
    >> [x,y] = ndgrid(linspace(-3,3,10));
    >> z = exp(-x.^2 -y.^2);
    >> c = contour(z);
    >> s = getcontourlines(c);
    >> plot(s(1).x, s(1).y, 'b', s(4).x, s(4).y, 'r', s(9).x, s(9).y, 'g')