24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1419  |  回复: 7
当前主题已经存档。

phyfriday

金虫 (小有名气)

[交流] 【求助】20金求助matlab中contour plot命令的源码

急切求教各位高手,如何获知matlab中等高线命令--contour的算法或源代码?
回复此楼

» 猜你喜欢

光学--红外激光器
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coldwind042

金虫 (正式写手)

也想知道,帮你顶!
2楼2009-04-27 13:44:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hitzhang

木虫 (正式写手)

★ ★ ★ ★ ★
sunxiao(金币+3,VIP+0):thank you 4-28 05:24
phyfriday(金币+2,VIP+0):谢谢 4-28 09:19
function [cout, hand] = contour(varargin)
%CONTOUR Contour plot.
%   CONTOUR(Z) is a contour plot of matrix Z treating the values in Z
%   as heights above a plane.  A contour plot are the level curves
%   of Z for some values V.  The values V are chosen automatically.
%   CONTOUR(X,Y,Z) X and Y specify the (x,y) coordinates of the
%   surface as for SURF. The X and Y data will be transposed or sorted
%   to bring it to MESHGRID form depending on the span of the first
%   row and column of X (to orient the data) and the order of the
%   first row of X and the first column of Y (to sorted the data). The
%   X and Y data must be consistently sorted in that if the first
%   element of a column of X is larger than the first element of
%   another column that all elements in the first column are larger
%   than the corresponding elements of the second. Similarly Y must be
%   consistently sorted along rows.
%   CONTOUR(Z,N) and CONTOUR(X,Y,Z,N) draw N contour lines,
%   overriding the automatic value.
%   CONTOUR(Z,V) and CONTOUR(X,Y,Z,V) draw LENGTH(V) contour lines
%   at the values specified in vector V.  Use CONTOUR(Z,[v v]) or
%   CONTOUR(X,Y,Z,[v v]) to compute a single contour at the level v.
%   CONTOUR(AX,...) plots into AX instead of GCA.
%   [C,H] = CONTOUR(...) returns contour matrix C as described in
%   CONTOURC and a handle H to a contourgroup object.  This handle can
%   be used as input to CLABEL.
%
%   The contours are normally colored based on the current colormap
%   and are drawn as PATCH objects. You can override this behavior
%   with the syntax CONTOUR(...,LINESPEC) to draw the contours
%   with the color and linetype specified. See the help for PLOT
%   for more information about LINESPEC values.
%
%   The above inputs to CONTOUR can be followed by property/value
%   pairs to specify additional properties of the contour object.
%
%   Uses code by R. Pawlowicz to handle parametric surfaces and
%   inline contour labels.
%
%   Example:
%      [c,h] = contour(peaks); clabel(c,h), colorbar
%
%   See also CONTOUR3, CONTOURF, CLABEL, COLORBAR, MESHGRID.

%   Additional details:
%
%   CONTOUR uses CONTOUR3 to do most of the contouring.  Unless
%   a linestyle is specified, CONTOUR will draw PATCH objects
%   with edge color taken from the current colormap.  When a linestyle
%   is specified, LINE objects are drawn.
%
%   Thanks to R. Pawlowicz (IOS) rich@ios.bc.ca for 'contours.m' and
%   'clabel.m/inline_labels' so that contour now works with parametric
%   surfaces and inline contour labels.

%   Copyright 1984-2007 The MathWorks, Inc.
%   $Revision: 5.18.4.18 $  $Date: 2007/11/13 00:10:21 $

[v6,args] = usev6plotapi(varargin{:},'-mfilename',mfilename);
if v6
  [c,h] = Lcontourv6(args{:});
else
  % Parse possible Axes input
  error(nargchk(1,inf,nargin,'struct'));
  [cax,args] = axescheck(args{:});
  [pvpairs,args,msg] = parseargs(args); %#ok
  if ~isempty(msg), error(msg); end %#ok
  
  if isempty(cax) || isa(handle(cax),'hg.axes')
      cax = newplot(cax);
      parax = cax;
      hold_state = ishold(cax);
  else
      parax = cax;
      cax = ancestor(cax,'Axes');
      hold_state = true;
  end

  h = specgraph.contourgroup('parent',parax,pvpairs{:});
  set(h,'refreshmode','auto');
  c = get(h,'contourmatrix');
  
  if ~hold_state
    view(cax,2);
    set(cax,'box','on','layer','top');
    grid(cax,'off')
  end
  plotdoneevent(cax,h);
  h = double(h);
end

if nargout > 0
    cout = c;
    hand = h;
end

function [c,h] = Lcontourv6(varargin)  
% Parse possible Axes input
error(nargchk(1,6,nargin,'struct'));
[cax,args] = axescheck(varargin{:});

cax = newplot(cax);

[c,h,msg] = contour3(cax,args{:});
if ~isempty(msg), error(msg); end %#ok

set(h,'ZData',[]);

if ~ishold(cax)
  view(cax,2);
  set(cax,'Box','on');
  grid(cax,'off')
end

function [pvpairs,args,msg] = parseargs(args)
msg = '';
% separate pv-pairs from opening arguments
[args,pvpairs] = parseparams(args);

% check for special string arguments trailing data arguments
if ~isempty(pvpairs)
  [l,c,m,tmsg]=colstyle(pvpairs{1}); %#ok
  if isempty(tmsg)
    args = {args{:},pvpairs{1}};
    pvpairs = pvpairs(2:end);
  end
  msg = checkpvpairs(pvpairs);
end

nargs = length(args);
x = [];
y = [];
z = [];
if ischar(args{end})
  [l,c,m,tmsg] = colstyle(args{end}); %#ok
  if ~isempty(tmsg),
    msg = sprintf('Unknown option "%s".',args{end});
  end
  if ~isempty(c)
    pvpairs = {'linecolor',c,pvpairs{:}};
  end
  if ~isempty(l)
    pvpairs = {'linestyle',l,pvpairs{:}};
  end
  nargs = nargs - 1;
end
if (nargs == 2) || (nargs == 4)
  if (nargs == 2)
    z = datachk(args{1});
    pvpairs = {'zdata',z,pvpairs{:}};
  else
    x = datachk(args{1});
    y = datachk(args{2});
    z = datachk(args{3});      
    pvpairs = {'xdata',x,'ydata',y,'zdata',z,pvpairs{:}};
  end
  if (length(args{nargs}) == 1) && (fix(args{nargs}) == args{nargs})
    % N
    zmin = min(real(double(z()));
    zmax = max(real(double(z()));
    if args{nargs} == 1
      pvpairs = {'levellist',(zmin+zmax)/2, pvpairs{:}};
    else
      levs = linspace(zmin,zmax,args{nargs}+2);
      pvpairs = {'levellist',levs(2:end-1),pvpairs{:}};
    end
  else
    % levels
    pvpairs = {'levellist',unique(args{nargs}),pvpairs{:}};
  end
elseif (nargs == 1)
  z = datachk(args{1});
  pvpairs = {'zdata',z,pvpairs{:}};
elseif (nargs == 3)
  x = datachk(args{1});
  y = datachk(args{2});
  z = datachk(args{3});
  pvpairs = {'xdata',x,'ydata',y,'zdata',z,pvpairs{:}};
end
% Make sure that the data is consistent if x and y are specified.
if ~isempty(x)
    msg = xyzcheck(x,y,z);
end
if ~isempty(z) && isempty(msg)
    k = find(isfinite(z));
    zmax = max(z(k));
    zmin = min(z(k));
    if ~any(k)
        warning('MATLAB:contour:NonFiniteData','Contour not rendered for non-finite ZData');
    elseif isempty(z) || (zmax == zmin)
        warning('MATLAB:contour:ConstantData','Contour not rendered for constant ZData');
    end
end
args = [];
3楼2009-04-27 19:17:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

★ ★ ★
sunxiao(金币+2,VIP+0):thank you 4-28 05:25
phyfriday(金币+1,VIP+0):谢谢 4-28 09:19
楼上正解,直接找Help文件,或者在命令窗口打开嘛
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
4楼2009-04-27 19:41:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phyfriday

金虫 (小有名气)

谢谢3楼、4楼。
这个我也试过了,可是生成等高线的核心函数----h = specgraph.contourgroup('parent',parax,pvpairs{:})怎么才能调出来?对应于同一高度,利用contour命令生成等高线有许多条,现在我想对对这些等高线逐条提取,大概1000多条,并且使每条含有大致相同的点,所以必须看到生成等高线的原始代码,才对我有帮助。还希望各位帮忙!
光学--红外激光器
5楼2009-04-28 09:18:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

★ ★
phyfriday(金币+1,VIP+0):谢谢 4-28 19:49
kuhailangyu(金币+1,VIP+0):欢迎区长同志莅临指导! 4-29 20:40
引用回帖:
Originally posted by phyfriday at 2009-4-28 09:18:
谢谢3楼、4楼。
这个我也试过了,可是生成等高线的核心函数----h = specgraph.contourgroup('parent',parax,pvpairs{:})怎么才能调出来?对应于同一高度,利用contour命令生成等高线有许多条,现在我想对对这些等 ...

h = specgraph.contourgroup('parent',parax,pvpairs{:})这个命令是一个GUI函数语句,调用的是结构体specgraph.contourgroup的句柄,然后对这个句柄进行GUI操作,所以这个是一个命令,而不是一个函数,如果要调用的话,你必须明白parax, pvpairs这两个变量代表什么,需要对specgraph.contourgroup这结构体数据里面有什么东西有了解,所以,慢慢顺藤摸瓜吧~~
What would Jesus do?
6楼2009-04-28 15:07:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phyfriday

金虫 (小有名气)

自己顶起,急需大家的帮忙!
光学--红外激光器
7楼2009-04-28 19:52:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

andloani

铁虫 (小有名气)


sunxiao(金币+1,VIP+0):谢谢参与,欢迎常来仿真编程版 4-29 11:07
改用其他软件,如surfer
8楼2009-04-28 21:22:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 phyfriday 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 同年申报,是不是就不会派给你函评本子了? +3 redcom 2026-03-29 3/150 2026-04-04 09:01 by kingkocxr
[考研] 化工求调剂 +11 荔香芝士椰奶 2026-04-03 11/550 2026-04-03 22:06 by 啵啵啵0119
[考研] 化学308分调剂 +21 你好明天你好 2026-03-30 22/1100 2026-04-03 21:32 by 百灵童888
[考研] 一志愿南昌大学324求调剂 +13 hanamiko 2026-04-01 13/650 2026-04-03 18:30 by ls刘帅
[考研] 338求调剂,一志愿能源动力,外语是日语203 +5 zzz,,r 2026-04-02 5/250 2026-04-03 09:45 by 蓝云思雨
[考研] 302求调剂一志愿华中师范大学 +7 小江小江江江 2026-04-02 7/350 2026-04-02 21:48 by macy2011
[考研] 322求调剂:一志愿湖南大学 材料与化工(085600),已过六级。 +12 XX小邓 2026-03-29 13/650 2026-04-02 21:39 by 百灵童888
[考研] 环境科学与工程334分求调剂 +7 王一一依依 2026-03-30 9/450 2026-04-02 21:15 by 1104338198
[考研] 349求调剂 +10 zwjjjjjj 2026-03-31 10/500 2026-04-02 20:13 by dongzh2009
[考研] 求调剂求调剂 +7 121. 2026-04-02 7/350 2026-04-02 19:15 by dick_runner
[考研] 一志愿同济大学323分(080500)求调剂 +6 yikeniu 2026-04-01 6/300 2026-04-02 14:19 by smileboy2006
[考研] 材料求调剂 +10 呢呢妮妮 2026-04-01 13/650 2026-04-02 09:17 by olim
[考研] 一志愿北京科技,085601总分305求调剂 +9 半生瓜! 2026-04-01 11/550 2026-04-02 08:28 by Wang200018
[考研] 285求调剂 +11 AZMK 2026-04-01 11/550 2026-04-01 22:40 by peike
[考研] 生物与医药考研调剂 +5 铁憨憨123425 2026-03-31 5/250 2026-04-01 18:01 by syh9288
[考研] 350求调剂 +7 阿佳~ 2026-03-31 7/350 2026-04-01 16:12 by yanflower7133
[考研] 求调剂 +4 图鉴212 2026-03-30 5/250 2026-04-01 15:32 by 图鉴212
[考研] 材料调剂 +10 Eujd1 2026-03-31 11/550 2026-04-01 11:23 by ivanqyq
[考研] 考研生物与医药调剂 +7 铁憨憨123425 2026-03-31 7/350 2026-04-01 08:45 by JourneyLucky
[考研] 一志愿华东师范大学有机化学专业,初试351分,复试被刷求调剂! +9 真名有冰 2026-03-29 10/500 2026-03-31 18:01 by xhai2011
信息提示
请填处理意见