BasicsofMATLABandbeyond及其他基礎知識源代碼_第1頁
BasicsofMATLABandbeyond及其他基礎知識源代碼_第2頁
BasicsofMATLABandbeyond及其他基礎知識源代碼_第3頁
BasicsofMATLABandbeyond及其他基礎知識源代碼_第4頁
BasicsofMATLABandbeyond及其他基礎知識源代碼_第5頁
已閱讀5頁,還剩174頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

arrow

function[h,yy,zz]=arrow(varargin)

%ARROWDrawalinewithanarrowhead.

%

%ARROW(Start,Stop)drawsalinewithanarrowfromStarttoStop(points

%shouldbevectorsoflength2or3,ormatriceswith2or3

%columns),andreturnsthegraphicshandleofthearrow(s).

%

%ARROWusesthemouse(click-drag)tocreateanarrow.

%

%ARROWDEMO&ARROWDEMO2show3-D&2-DdemosofthecapabilitiesofARROW.

%

%ARROWmaybecalledwithanormalargumentlistoraproperty-basedlist.

%ARROW(Start,Stop,Length,BaseAngle,TipAngle,Width,Page,CrossDir)is

%thefullnormalargumentlist,whereallbuttheStartandStop

%pointsareoptional.Ifyouneedtospecifyalaterargument(e.g.,

%Page)butwantdefaultvaluesofearlierones(e.g.,TipAngle),

%passanemptymatrixfortheearlierones(e.g.,TipAngle=[]).

%

%ARROWPropertyr,PropVall,JProperty25,PropVal2,...)createsarrowswiththe

%givenproperties,usingdefaultvaluesforanyunspecifiedorgivenas

%'default'orNaN.Somepropertiesusedforlineandpatchobjectsare

%usedinamodifiedfashion,othersarepasseddirectlytoLINE,PATCH,

%orSET.Foradetailedpropertiesexplanation,callARROWPROPERTIES.

%

%StartThestartingpoints.B

%StopTheendpoints./I\.

%LengthLengthofthearrowheadinpixels/III\1

%BaseAngleBaseangleindegrees(ADE).//IIl\\L|

%TipAngleTipangleindegrees(ABC).///IIl\\\e|

%WidthWidthofthebaseinpixels.////11l\\\\nl

%PageUsehardcopyproportions./////IDl\\\\\gl

%CrossDirVectortoarrowheadplane.////II1\\\\t|

%NormalDirVectoroutofarrowheadplane.///II1\\\h|

%EndsWhichendhasanarrowhead.//<>1\\1

%ObjectHandlesVectorofhandlestoupdate./base1\v

%Eangle||<>c

%ARROW(H,JPropT,PropVall,...),whereHisaII|tipangle

%vectorofhandlestopreviously-createdarrowsII1

%and/or1ineobjects,willupdatethepreviously1

%createdarrowsaccordingtothecurrentview—>|AI<-width

%andanyspecifiedproperties,andwillconvert

%two-pointlineobjectstocorrespondingarrows.ARROW(II)willupdate

%thearrowsifthecurrentviewhaschanged.Root,figure,oraxes

%handlesincludedinIIarereplacedbyalldescendantArrowobjects.

%

%Apropertylistcanfollowanyspecifiednormalargumentlist,e.g.,

%ARROW([123],[000],36,'BaseAngle',60)createsanarrowfrom(1,2,3)to

%theorigin,withanarrowheadoflength36pixelsand60-degreebaseangle.

%

%Thebasicargumentsorpropertiescangenerallybevectorizedtocreate

%multiplearrowswiththesamecall.Thisisdonebypassingaproperty

%withonerowperarrow,or,ifallarrowsaretohavethesameproperty

%value,justonerowmaybespecified.

%

%YoumaywanttoexecuteAXIS(AXIS)beforecallingARROWsoitdoesn'tchange

%theaxesonyou;ARROWdeterminesthesizesofarrowcomponentsBEFOREthe

%arrowisplotted,soifARROWchangesaxis1imits,arrowsmaybemalformed.

%

%ThisversionofARROWusesfeaturesofMATLAB5andisincompatiblewith

%earlierMATLABversions(ARROWforMATLAB4.2cisavailableseparately);

%someproblemswithperspectiveplotsstillexist.

%Copyright(c)1995-1997,ErikA.Johnson〈johnsone@〉,8/14/97

%Revisionhistory:

%8/14/97EAJAddedworkaroundforMATLAB5.1scalarlogicaltransposebug.

%7/21/97EAJFixedafewmiscbugs.

%7/14/97EAJMakearrow([],?Prop,,...)donothing(nooldhandles)

%6/23/97EAJMATLAB5compatibleversion,release.

%5/27/97EAJAddedLineArrowsbackin.Correctedafewbugs.

%5/26/97EAJChangedmissingStart/Stoptomouse-selectedarrows.

%5/19/97EAJMATLAB5compatibleversion,beta.

%4/13/97EAJMATLAB5compatibleversion,alpha.

%1/31/97EAJFixedbugwithmultiplearrowsandunspecifiedZcoords.

%12/05/96EAJFixedonemorebugwithlogplotsandNormalDirspecified

%10/24/96EAJFixedbugwithlogplotsandNormaIDirspecified

%11/13/95EAJCorrectedhand!ingfor'reverse'axisdirections

%10/06/95EAJCorrectedoccasionalconflictwithSUBPLOT

%4/24/95EAJAmajorrewrite.

%Fall94EAJOriginalcode.

%Thingstobedone:

%-segmentparsing,computing,andplottingintoseparatesubfunctions

%-changecomputingfromXformtoCameraparadigms

%+thiswillhelpespeciallywith3-Dperspectiveplots

%+iftheWarpToFillsectionworksright,removewarningcode

%+whenperpsectiveworksproperly,removeperspectivewarningcode

%-addcellpropertyvaluesandstructpropertyname/values(likeget/set)

%-getridofNaNasthe"default"datalabel

%+perhapschangeuserdatatoastructanddon,tinclude(orleave

%empty)thevaluesspecifiedasdefault;oruseacellcontaining

%anemptymatrixforadefaultvalue

%-addfunctionalityofGETtoretrievecurrentvaluesofARROWproperties

%ManythankstoKeithRogers〈kerog@>forhismanyexcellent

%suggestionsandbetatesting.CheckouthissharewarepackageMATDRAW.

%HehaspermissiontodistributeARROWwithMATDRAW.

%globalvariableinitialization

globalARROW_PERSP_WARNARROW_STRETCII_WARNARROW_AXLIMITS

ifisempty(ARROW_PERSP_WARN),ARROW_PERSP_WARN=1;end;

ifisempty(ARROW_STRETCH_WARN),ARROW_STRETCH_WARN=1;end;

%Handlecallbacks

if(nargin>0&isstr(varargin{l})&strcmp(lower(varargin{l}),*callback,)),

arrow_callback(varargin{2:end});return;

end;

%Arewedoingthedemo?

c=sprintf('\n);

if(nargin==l&isstr(varargin{1})),

argl=lower(varargin{1});

ifstrncmp(argl,Jprop',4),arrow_props;

elseifstrncmp(argl,Jdemo',4)

elfreset

demo_info=arrow_demo;

if"strncmp(argl,'demo2,,5),

hh=arrow_demo3(demo_info);

else,

hh=arrow_demo2(demo_info);

end;

if(nargout>=l),h=hh;end;

elseifstrncmp(argl,,fixlimits',3),

arrow_fixlimits(ARROW_AXLIMITS);

ARROW_AXLIMITS=[];

elseifstrncmp(argl,'help',4),

disp(he1p(mfi1ename));

else,

error([upper(mfilename)'gotanunknownsingle-argumentstring

deblank(argl)

end;

return;

end;

%Check#ofarguments

if(nargout>3),error([upper(mfilename)'producesatmost3outputarguments.,]);

end;

%findfirstpropertynumber

firstprop=nargin+1;

fork=l:length(varargin),if'isnumeric(varargin{k}),firstprop=k;break;end;end;

lastnumeric=firstprop-1;

%checkpropertylist

if(firstprop<=nargin),

fork=firstprop:2:nargin,

curarg=varargin{k};

if^isstr(curarg)|sum(size(curarg)>1)>1,

error([upper(mfi1ename)'requiresthatapropertynamebeasingle

string.J]);

end;

end;

if(rem(nargin-firstprop,2)?=1),

error([upper(mfi1ename)'requiresthattheproperty'''

varargin{nargin}'''bepairedwithapropertyvalue.*]);

end;

end;

%defaultoutput

if(nargout>0),'h二口;end;

if(nargout>l),yy=[];end;

if(nargout>2),zz=[];end;

%setvaluestoemptymatrices

start=[]

stop=[]

len=[]

baseangle=[]

tipangle=[]

wid=[]

page=[]

crossdir=[]

ends=[]

ax=[]

oldh=[]

ispatch[];

defstart=[NaNNaNNaN]

defstop=[NaNNaNNaN]

deflen=16;

defbaseangle=90;

deftipangle=16;

defwid=o;

defpage=o;

defcrossdir=[NaNNaNNaN]

defends=1;

defoldh=[];

defispatch=1;

%The'Tag'we'11putonourarrows

ArrowTag='Arrow";

%checkforoldstylearguments

if(firstprop==2),

%assumearglisasetofhandles

oldh=varargin{1}(:);

ifisempty(oldh),return;end;

elseif(firstprop>9),

error([upper(mfilename)'takesatmost8non-propertyarguments.5]);

elseif(firstprop>2),

s

str2mat('start','stop','len','baseangle','tipangle','wid',‘page','crossdir');

fork=l:firstprop-l,eval([deblank(s(k,:))'=varargin{k};']);end;

end;

%parsepropertypairs

extraprops={};

fork=firstprop:2:nargin,

prop二varargin{k};

val=varargin{k+1};

,

prop二[lower(prop(:))’

ifstrncmp(prop,,start,,5),start=val;

elseifstrncmp(prop,,stop?,4),stop=val;

elseifstrncmp(prop,*len',3),len=val(:);

?

elseifstrncmp(prop,base',4),baseangle二val(:);

elseifstrncmp(prop,*tip',3),tipangle=val(:);

,

elseifstrncmp(prop,wid',3),wid二val(:);

elseifstrncmp(prop,*page',4),page=val;

5

elseifstrncmp(prop,cross',5),crossdir二val;

elseifstrncmp(prop,Jnorm,4),if(isstr(val)),crossdir=val;else,

crossdir=val*sqrt(-1);end;

elseifstrncmp(prop,'end',3),ends=val;

elseifstrncmp(prop,5object',6),oldh=val(:)

elseifstrncmp(prop,5handle',6),oldh=val(:)

elseifstrncmp(prop,'type',4),ispatch二val;

elseifstrncmp(prop,5userd,,5),%ignoreit

else,

%makesureitisavalidpatchorlineproperty

eval('get(0,[''DefaultPatch,'varargin{k}]);err=0;','err=l;');

errstr=lasterr;

if(err),eval('get(0,[''DefaultLine,'varargin{k}]);err=0;','err=l;');

end;

if(err),

errstr(1:max(find(errstr==setstr(13)|errstr==setstr(10))))='';

error([upper(mfi1ename)'got'errstr]);

end;

extraprops={extraprops{:},varargin{k},val);

end;

end;

%Checkifwegot'default'values

start=arrowdefcheck(start,defstart,'Start*);

stop=arrow__defcheck(stop,defstop,'Stop');

len=arrowdefcheck(len,deflenLength');

baseangle=arrow__defcheck(baseangle,defbaseangle,,BaseAngle,);

tipangle=arrowdefcheck(tipangle,deftipangle,'TipAngle');

wid=arrow,_defcheck(wid,defwidWidth');

crossdir=arrowdefcheck(crossdir,defcrossdirCrossDir');

page二arrow__defcheck(page,defpage,'Page');

ends=arrowdefcheck(ends,defends;

,

oldh二arrow__defcheck(oldh,口,'ObjectHandles);

ispatch=arrowdefcheck(ispatch,defispatch;

%checktransposeonarguments

[m,n]=size(start);ifany(m==:[23])&(n==l|n>3),start=start?

end;

[m,n]:size(stop);ifany(m==[23])&(n==ln>3),stop=stop'

end;

[m,n]=size(crossdir);ifany(m==[23])&(n==l|n>3),crossdir=crossdir,

end;

%convertstringstonumbers

if^isempty(ends)&isstr(ends),

endsorig=ends;

[m,n]=size(ends);

col=lower([ends(:,1:min(3,n))ones(m,max(0,3-n))']);

ends=NaN*ones(m,1);

oo=ones(1,m);

ii=find(all(coT二二['non']'*oo)');if?isempty(ii),

ends(ii)=ones(length(ii),1)*0;end;

ii=find(all(col'=二['sto']'*oo)');if^isempty(ii),

ends(ii)=ones(length(ii),1)*1;end;

ii=find(all(col'二二['sta'['*oo)');if"isempty(ii),

ends(ii)=ones(length(ii),1)*2;end;

ii=find(all(col'二二['bot'['*oo)');if?isempty(ii),

ends(ii)=ones(length(ii),1)*3;end;

ifany(isnan(ends)),

ii二min(find(isnan(ends)));

error([upper(mfilename)'doesnotrecognize'''deblank(endsorig(ii,:))

'''asavalid''Ends''value.J]);

end;

else,

ends=ends(:);

end;

if^isempty(ispatch)&isstr(ispatch),

col=lower(ispatch(:,1));

patchchar='p';linechar='1';defchar=’';

mask=col?=patchchar&col'=linechar&coP=defchar;

ifany(mask),

error([upper(mfilename)'doesnotrecognize

deblank(ispatch(min(find(mask)),:))''asavalid''Type''value.']);

end;

ispatch二(col二二patchchar)*1+(col==linechar)*0+(col~defchar)*defispatch;

else,

ispatch=ispatch(:);

end;

oldh=oldh(:);

%checkobjecthandles

if"all(ishandle(oldh)),error([upper(mfi1ename)'gotinvalidobjecthandles.*]);

end;

%expandroot,figure,andaxeshandles

if?isempty(oldh),

ohtype=get(oldh,'Type');

mask二strcmp(ohtype,'root')|strcmp(ohtype,*figure,)|strcmp(ohtype,'axes');

ifany(mask),

oldh=num2cell(oldh);

forii=find(mask),,

oldh(ii)={findobj(oldh{ii),JTag*,ArrowTag));

end;

oldh=cat(1,oldh{:});

ifisempty(oldh),return;end;%noarrowstomodify,sojustleave

end;

end;

%largestargumentlength

[mstart,junk]=size(start);[mstop,junk]=size(stop);

[mcrossdir,junk]=size(crossdir);

argsizes=[length(oldh)mstartmstop

length(len)length(baseangle)length(tipangle)

length(wid)length(page)incrossdirlength(ends)];

args=['length(Objectllandle);

J#rows(Start);...

'#rows(Stop)';..?

Jlength(Length);...

'length(BaseAngle);???

'length(TipAngle)’;

Jlength(Width)?;...

,length(Page);...

'ttrows(CrossDir);...

'#rows(Ends)'];

if(any(imag(crossdir(:))?=0)),

args(9,:)=>#rows(NormalDir);

end;

ifisempty(oldh),

narrows=max(argsizes);

else,

narrows=length(oldh);

end;

if(narrows<=0),narrows」;end;

%Checksizeofarguments

ii=find((argsizes^O)&(argsizes^=1)&(argsizes"=narrows));

if"isempty(ii),

s=argsCii*,;

while((size(s,2)>l)&((abs(s(:,size(s,2)))=0)|(abs(s(:,size(s,2)))==abs(,

‘)))),

s二s(:,l:size(s,2)-1);

end;

s二[ones(1ength(ii),1)*[upper(mfilename)'requiresthat']s...

ones(length(ii),1)*['equalthe#ofarrows('num2str(narrows)c]];

S二s';

S=s(:)';

s=s(l:length(s)-l);

error(setstr(s));

end;

%checkelementlengthinStart,Stop,andCrossDir

if^isempty(start),

[m,n]=size(start);

if(n==2),

start=[startNaN*ones(m,1)];

elseif(rT=3),

error([upper(mfi1ename)'requires2-or3-elementStartpoints.']);

end;

end;

if?isempty(stop),

[m,n]=size(stop);

if(n==2),

stop=[stopNaN*ones(m,1)];

elseif(n'=3),

error([upper(mfilename)'requires2-or3-elementStoppoints.*]);

end;

end;

if^isempty(crossdir),

[m,n]=size(crossdir);

if(n<3),

crossdir=[crossdirNaN*ones(m,3-n)];

elseif(rT=3),

if(all(imag(crossdir(:))==0)),

error([upper(mfi1ename)'requires2-or3-elementCrossDir

vectors.*]);

else,

error([upper(mfi1ename)'requires2-or3-elementNormalDir

vectors.J]);

end;

end;

end;

%fillemptyarguments

ifisempty(start),start=[InfInfInf];end;

ifisempty(stop),stop二[InfInfInf];end;

ifisempty(len),len=Inf;end;

ifisempty(baseangle),baseangle二Inf;end;

ifisempty(tipangle),tipangle=Inf;end;

ifisempty(wid),wid=Inf;end;

ifisempty(page),page=Inf;end;

ifisempty(crossdir),crossdir二[InfInfInf];end;

ifisempty(ends),ends=Inf;end;

ifisempty(ispatch),ispatch二Inf;end;

%expandsingle-columnarguments

o=ones(narrows,1);

if(size(start1)==1),start=o*start;end;

if(size(stop1)==1),stop=o*stop;end;

if(length(len)==1),len=o*len;end;

if(length(baseangle)==1),baseangle二o*baseangle;end;

if(length(tipangle)==D,tipangle=o*tipangle;end;

if(length(wid)==D,wid=o*wid;end;

if(length(page)==1),page=o*page;end;

if(size(crossdir,1)==1),crossdir=o*crossdir;end;

if(length(ends)==1),ends二o*ends;end;

if(length(ispatch)==D,ispatch=o*ispatch;end;

ax二o*gca;

%ifwe'vegothandles,getthedefaultsfromthehandles

if"isempty(oldh),

fork=lmarrows,

oh=oldh(k);

ud=get(oh,'UserData,);

ax(k)=get(oh,'Parent');

ohtype=get(oh,?Type');

ifstrcmp(get(oh,*Tag*),ArrowTag),%ifit'sanarrowalready

ifisinf(ispatch(k)),ispatch(k)=strcmp(ohtype,*patch');end;

%arrowUserDataformat:[start,stop'lenbasetipwidpagecrossdir,

ends]

startO=ud(l:3);

stopO=ud(4:6);

if(isinf(len(k))),len(k)=ud(7);end;

if(isinf(baseangle(k))),baseangle(k)=ud(8);end;

if(isinf(tipangle(k))),tipangle(k)=ud(9);end;

if(isinf(wid(k))),wid(k)=ud(10);end;

if(isinf(page(k))),page(k)=ud(ll);end;

if(isinf(crossdir(k,1))),crossdir(k,1)=ud(12);end;

if(isinf(crossdir(k,2))),crossdir(k,2)=ud(13);end;

if(isinf(crossdir(k,3))),crossdir(k,3)=ud(14);end;

if(isinf(ends(k))),ends(k)=ud(15);end;

elseifstrcmp(ohtype,Jline')strcmp(ohtype,*patch'),%it'sanon-arrow

lineorpatch

convLineToPatch=1;%settomakearrowpatcheswhenconvertingfrom

lines.

ifisinf(ispatch(k)),

ispatch(k)=convLineToPatch|strcmp(ohtype,,patch');end;

,

x=get(oh,'XData)x二x(?isnan(x(:)));ifisempty(x),x=NaN;end;

y=get(oh,'YData')y=yCisnan(y(:)));ifisempty(y),y=NaN;end;

z=get(oh,'ZData/)z二z(?isnan(z(:)));ifisempty(z),z=NaN;end;

startO=[x(l)y(1)z(1)];

stopO=[x(end)y(end)z(end)];

else,

error([upper(mfi1ename)cannotconvert'ohtype'objects.5]);

end;

ii=find(isinf(start(k,:)));if^isempty(ii),start(k,ii)=startO(ii);

end;

ii=find(isinf(stop(k,:)));if^isempty(ii),stop(k,ii)=stopO(ii);

end;

end;

end;

%convertInf'stoNaN's

start(isinf(start))=NaN;

stop(isinf(stop))=NaN;

len(isinf(len))二NaN;

baseangle(isinf(baseangle))=NaN;

tipangle(isinf(tipangle))二NaN;

wid(isinf(wid))=NaN;

page(isinf(page))二NaN;

crossdir(isinf(crossdir))=NaN;

ends(isinf(ends))=NaN;

ispatch(isinf(ispatch))=NaN;

%setuptheUserDatadata(heresonotcorruptedbyloglO,sandsuch)

ud=[startstoplenbaseangletipanglewidpagecrossdirends];

%SetPagedefaults

page=("isnan(page))&(page);

%Getaxeslimits,range,min;correctforaspectratioandlogscale

axm=zeros(3,narrows);

axr=zeros(3,narrows);

axrev=zeros(3,narrows);

ap=zeros(2,narrows);

xyzlog二zeros(3,narrows);

1immin=zeros(2,narrows);

limrange=zeros(2,narrows);

oldaxlims=zeros(narrows,7);

oneax=all(ax==ax(l));

if(oneax),

T=zeros(4,4);

invT=zeros(4,4);

else,

T=zeros(16,narrows);

invT=zeros(16,narrows);

end;

axnotdone=logical(ones(size(ax)));

while(any(axnotdone)),

ii=min(find(axnotdone));

curax=ax(ii);

curpage=page(ii);

%getaxeslimitsandaspectratio

axl=[get(curax,JXLim,);get(curax,'YLim,);get(curax,'ZLim,)];

oldaxlims(min(find(oldaxlims(:,1)=0)),:)=[curaxreshape(axT,1,6)];

%getaxessizeinpixels(points)

u=get(curax,*Units,);

axposoldunits=get(curax,JPosition,);

really_curpage=curpage&strcmp(u,'normalized');

if(really_curpage),

curfig=get(curax,'Parent');

pu=get(curfig,5PaperUnits,);

set(curfig,*PaperUnits,,*points,);

pp=get(curfig,5PaperPosition,);

set(curfig,,PaperUnits,,pu);

set(curax,'Units','pixels*);

curapscreen=get(curax,*Position');

set(curax,'Units','normalized');

curap=pp.*get(curax,*Position');

else,

set(curax,*Units','pixels*);

curapscreen=get(curax,'Position');

curap=curapscreen;

end;

set(curax,*Units',u);

set(curax,'Position',axposoldunits);

%handlenon-stretchedaxesposition

str_stretch={'DataAspectRatioMode,;...

JPlotBoxAspectRatioMode,;...

'CameraViewAngleMode,};

strcamera={JCameraPositionMode,;…

CameraTargetMode,

CameraViewAngleMode,

CameraUpVectorMode,

notstretched=strcmp(get(curax,str_stretch),,manuar);

manualcamera=strcmp(get(curax,str_camera),?manual');

if"arrowWarpToFill(notstretched,manualcamera,curax),

%giveawarningthatthishasnotbeenthoroughlytested

if0&ARROW_STRETCH_WARN,

ARROW_STRETCII_WARN=0;

strs={str_stretch{1:2},str_camera{:}};

strs二[char(ones(length(strs),l)*sprintf\n'))char(strs);

warning([upper(mfi1ename)'maynotyetworkquiteright'

ifanyofthefollowingare''manual'':'strs(:).']);

end;

%findthetruepixelsizeoftheactualaxes

texttmp=text(axl(l,[12211221]),

axl(2,[11221122]),

axl(3,[11112222]),'');

set(texttmp,'Units','points*);

textpos=get(texttmp,'Position');

delete(texttmp);

textpos=cat(1,textpos{1});

textpos=max(textpos(:,1:2))-min(textpos(:,1:2));

%adjusttheaxesposition

if(rea11y_curpage),

%adjusttoprintedsize

textpos=textpos*min(curap(3:4)./textpos);

curap=[curap(1:2)+(curap(3:4)-textpos)/2textpos];

else,

%adjustforpixelroundoff

textpos=textpos*min(curapscreen(3:4)./textpos);

curap=[curap(1:2)+(curap(3:4)-textpos)/2textpos];

end;

end;

ifARROW_PERSP_WARN&飛trcmp(get(curax,'Projection'),'orthographic'),

ARROW_PERSP_WARN=0;

warning([upper(mfilename)'doesnotyetworkrightfor3-Dperspective

projection.J]);

end;

%adjustlimitsforlogscaleonaxes

curxyzlog=[strcmp(get(curax,JXScale,),'log');

strcmp(get(curax,,YScale'),'log');

strcmp(get(curax,,ZScale*),'log')];

if(any(curxyzlog)),

ii=find([curxyzlog;curx5rzlog]);

if(any(axl(ii)<=0)),

error([upper(mfi1ename)'doesnotsupportnon-positivelimitson

log-scaledaxes.']);

else,

axl(ii)=loglO(axl(ii));

end;

end;

%correctfor'reverse'directiononaxes;

curreverse=[strcmp(get(curax,*XDir'),'reverse');

strcmp(get(curax,'YDir,),‘reverse1);

strcmp(get(curax,JZDir*)reverse')];

ii=find(curreverse);

if?isempty(ii),

axl(ii,[12])=-axl(ii,[21]);

end;

%computetherangeof2-Dvalues

curT=get(curax,*Xform');

lim=curT*[01010101;00110011;00001111;11111111];

lim=lim(l:2,:)./([I;l]*lim(4,:));

curlimmin=min(lim')';

curlimrange=max(lim')'-curlimmin;

curinvT=inv(curT);

if(?oneax),

curT=curT.';

curinvT=curinvT.';

curT=curT(:);

curinvT=curinvT(:);

end;

%c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論