%等高線等高線圖。
% CONTOUR(Z)是矩陣Z的等值線圖,處理Z中的值
%表示高於平面的高度。等高線圖是水平曲線
對於某些值V,Z的%。值V是自動選擇的。
% CONTOUR(X,Y,Z) X和Y指定的(X,Y)坐標
%表面至於沖浪。X和Y數據將被轉置或排序
%使其成為MESHGRID形式,取決於第壹個
% X的行和列(用於定位數據)以及
% X的第壹行和Y的第壹列(對數據進行排序)。這
% X和Y數據必須壹致排序,如果第壹個
X列的%元素大於的第壹個元素
%另壹列比第壹列中的所有元素都大
%比第二個。同樣地,Y必須是
%壹致地按行排序。
% CONTOUR(Z,N)和CONTOUR(X,Y,Z,N)畫N條等高線,
%覆蓋自動值。
%等高線(Z,V)和等高線(X,Y,Z,V)繪制長度(V)的等高線
%在向量v中指定的值。使用CONTOUR(Z,)或
% CONTOUR(X,Y,Z,)在級別v計算單個輪廓。
%輪廓(AX,...)繪制到AX而不是GCA中。
% =等高線(...)返回輪廓矩陣C,如中所述
% CONTOURC和contourgroup對象的句柄H。這個手柄可以
%用作CLABEL的輸入。
%
%等高線通常基於當前色彩映射表進行著色
%和被繪制為面片對象。您可以覆蓋此行為
%與語法輪廓(...LINESPEC)來繪制輪廓
%具有指定的顏色和線型。請參見繪圖幫助
%了解有關LINESPEC值的更多信息。
%
%上述輪廓輸入後可以跟屬性/值
%對來指定輪廓對象的附加屬性。
%
%使用R. Pawlowicz的代碼來處理參數曲面和
%內嵌輪廓標簽。
%
%示例:
% =輪廓(峰值);克拉貝爾(c,h),彩條
%
%請參閱CONTOUR3、CONTOURF、CLABEL、COLORBAR、MESHGRID。
%其他詳細信息:
%
% CONTOUR使用CONTOUR3完成大部分輪廓繪制。除非
% a指定了線型,輪廓將繪制面片對象
%帶有取自當前色彩映射表的邊緣顏色。當線型
%時,將繪制線對象。
%
%感謝R. Pawlowicz (IOS) rich@ios.bc.ca為“contours.m”和
% 'clabel.m/inline_labels ',以便輪廓現在可以與參數化
%曲面和內嵌輪廓標簽。
%版權所有1984-2007 The MathWorks,Inc .
% $修訂版:5.18 . 4 . 18 $ $日期:2007/11/13 00:10:21 $。
= use V6 plotapi(vara gin {:},'-mfilename ',mfilename);
如果v6
= lcontourv 6(args {:});
其他
%解析可能的軸輸入
error(nargchk(1,inf,nargin,' struct '));
= axe check(args {:});
= parse args(args);% #好的
if ~isempty(msg),error(msg);結束% #好的
if isempty(cax) || isa(handle(cax),' hg.axes ')
CAX = new plot(CAX);
parax = cax
hold _ state = is hold(CAX);
其他
parax = cax
cax =祖先(cax,'軸');
hold _ state = true
結束
h = spec graph . contour group(' parent ',parax,PV pairs {:});
set(h,' refreshmode ',' auto ');
c = get(h,' contour matrix ');
如果~保持狀態
視圖(cax,2);
set(cax,' box ',' on ',' layer ',' top ');
網格(cax,“關閉”)
結束
plotdoneevent(cax,h);
h = double(h);
結束
如果nargout & gt0
cout = c;
手= h;
結束
function = Lcontourv6(varargin)
%解析可能的軸輸入
error(nargchk(1,6,nargin,' struct '));
= axe check(vara rgin {:});
CAX = new plot(CAX);
= contour3(cax,args {:});
if ~isempty(msg),error(msg);結束% #好的
set(h,' ZData ',);
if ~ishold(cax)
視圖(cax,2);
set(cax,' Box ',' on ');
網格(cax,“關閉”)
結束
function = parseargs(args)
msg =“”;
%將pv對與開始參數分開
= parse params(args);
%檢查尾隨數據參數的特殊字符串參數
if ~isempty(pvpairs)
= col style(PV pairs { 1 });% #好的
如果為空(tmsg)
args = {args{:},pvpairs{1}}。
PV pairs = PV pairs(2:end);
結束
msg = checkpvpairs(pvpairs);
結束
nargs =長度(參數);
x =;
y =;
z =;
if ischar(args{end})
= col style(args { end });% #好的
if ~isempty(tmsg),
msg = sprintf('未知選項" %s ",",args { end });
結束
if ~isempty(c)
pvpairs = {'linecolor ',c,PV pairs {:} };
結束
if ~isempty(l)
pvpairs = {'linestyle ',l,PV pairs {:} };
結束
NAR GS = NAR GS-1;
結束
if (nargs == 2) || (nargs == 4)
if (nargs == 2)
z = data chk(args { 1 });
pvpairs = {'zdata ',z,PV pairs {:} };
其他
x = data chk(args { 1 });
y = data chk(args { 2 });
z = data chk(args { 3 });
pvpairs = {'xdata ',x,' ydata ',y,' zdata ',z,PV pairs {:} };
結束
if(length(args { nargs })= = 1)& amp(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,PV pairs {:} };
其他
levs = linspace(zmin,zmax,args { nargs }+2);
pvpairs = {'levellist ',levs(2:end-1),PV pairs {:} };
結束
其他
%級別
pvpairs = {'levellist ',unique(args{nargs}),PV pairs {:} };
結束
elseif (nargs == 1)
z = data chk(args { 1 });
pvpairs = {'zdata ',z,PV pairs {:} };
elseif (nargs == 3)
x = data chk(args { 1 });
y = data chk(args { 2 });
z = data chk(args { 3 });
pvpairs = {'xdata ',x,' ydata ',y,' zdata ',z,PV pairs {:} };
結束
%如果指定了x和y,請確保數據是壹致的。
if ~isempty(x)
msg = xyzcheck(x,y,z);
結束
if ~ is empty(z & amp;& ampisempty(消息)
k = find(is finite(z));
zmax = max(z(k));
zmin = min(z(k));
如果有的話(k)
警告(' MATLAB:contour:NonFiniteData ',' Contour not rendered for non-finite ZData ');
elseif isempty(z) || (zmax == zmin)
警告(' MATLAB:contour:ConstantData ',' Contour not render for constant ZData ');
結束
結束
args =;