MATLAB知识总结3.docx
- 文档编号:5995702
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:55
- 大小:47.25KB
MATLAB知识总结3.docx
《MATLAB知识总结3.docx》由会员分享,可在线阅读,更多相关《MATLAB知识总结3.docx(55页珍藏版)》请在冰豆网上搜索。
MATLAB知识总结3
MATLAB笔记总结(3)
☆for
Executestatementsspecifiednumberoftimes
Syntax
forindex=values
programstatements
:
end
Description
forindex=values,programstatements,endrepeatedlyexecutesoneormoreMATLABstatementsinaloop.valueshasoneofthefollowingforms:
initval:
endval
incrementstheindexvariablefrominitvaltoendvalby1,andrepeatsexecutionofprogramstatementsuntilindexisgreaterthanendval.
initval:
step:
endval
incrementsindexbythevaluesteponeachiteration,ordecrementswhenstepisnegative.
valArray
createsacolumnvectorindexfromsubsequentcolumnsofarrayvalArrayoneachiteration.Forexample,onthefirstiteration,index=valArray(:
1).Theloopexecutesforamaximumofntimes,wherenisthenumberofcolumnsofvalArray,givenbynumel(valArray,1,:
).TheinputvalArraycanbeofanyMATLABdatatype,includingastring,cellarray,orstruct.
Tips
Toforceanimmediateexitoftheloop,useabreakorreturnstatement.Toskiptherestoftheinstructionsintheloop,incrementtheloopcounter,andbeginthenextiteration,useacontinuestatement.
Avoidassigningavaluetotheindexvariablewithinthebodyofaloop.Theforstatementoverridesanychangesmadetotheindexwithintheloop.
Toiterateoverthevaluesofasinglecolumnvector,firsttransposeittocreatearowvector.
Examples
CreateaHilbertmatrixusingnestedforloops:
k=10;
hilbert=zeros(k,k);%Preallocatematrix
form=1:
k
forn=1:
k
hilbert(m,n)=1/(m+n-1);
end
end
Stepbyincrementsof-0.1,anddisplaythestepvalues:
fors=1.0:
-0.1:
0.0
disp(s)
end
Executestatementsforadefinedsetofindexvalues:
fors=[1,5,8,17]
disp(s)
end
Successivelysetetounitvectors:
fore=eye(5)
disp('Currentvalueofe:
')
disp(e)
end
☆break
Terminateexecutionoffororwhileloop
Syntax
break
Description
breakterminatestheexecutionofafororwhileloop.Statementsintheloopthatappearafterthebreakstatementarenotexecuted.
Innestedloops,breakexitsonlyfromtheloopinwhichitoccurs.Controlpassestothestatementthatfollowstheendofthatloop.
Tips
breakisnotdefinedoutsideafororwhileloop.Usereturninthiscontextinstead.
Examples
Theexamplebelowshowsawhileloopthatreadsthecontentsofthefilefft.mintoaMATLABcharacterarray.Abreakstatementisusedtoexitthewhileloopwhenthefirstemptylineisencountered.Theresultingcharacterarraycontainsthecommandlinehelpforthefftprogram.
fid=fopen('fft.m','r');
s='';
while~feof(fid)
line=fgetl(fid);
ifisempty(line)||~ischar(line),break,end
s=sprintf('%s%s\n',s,line);
end
disp(s);
fclose(fid);
☆continue
Passcontroltonextiterationoffororwhileloop
Syntax
continue
Description
continuetemporarilyinterruptstheexecutionofaprogramloop,skippinganyremainingstatementsinthebodyoftheloopforthecurrentpass.Thecontinuestatementdoesnotcauseanimmediateexitfromtheloopasabreakorreturnstatementwoulddo,butinsteadcontinueswithintheloopforaslongasthestatedfororwhileconditionholdstrue.
Acontinuestatementinanestedloopbehavesinthesamemanner.Executionresumesatthefororwhilestatementoftheloopinwhichthecontinuestatementwasencountered,andreenterstheloopifthestatedconditionevaluatestotrue.
Examples
Countthenumberoflinesofcodeinthefilemagic.m,skippingallblanklinesandcomments:
fid=fopen('magic.m','r');
count=0;
while~feof(fid)
line=fgetl(fid);
ifisempty(line)||strncmp(line,'%',1)||~ischar(line)
continue
end
count=count+1;
end
fprintf('%dlines\n',count);
fclose(fid);
☆eval
ExecutestringcontainingMATLABexpression
Syntax
eval(expression)
[a1,a2,a3,...]=eval('myfun(b1,b2,b3,...)')
Description
eval(expression)executesexpression,astringcontaininganyvalidMATLABexpression.Youcanconstructexpressionbyconcatenatingsubstringsandvariablesinsidesquarebrackets:
expression=[string1,int2str(var),string2,...]
[a1,a2,a3,...]=eval('myfun(b1,b2,b3,...)')executesfunctionmyfunwithargumentsb1,b2,b3,...,andreturnstheresultsinthespecifiedoutputvariables.
Tips
Usingtheevaloutputargumentlistisrecommendedoverincludingtheoutputargumentsintheexpressionstring.ThefirstsyntaxbelowavoidsstrictcheckingbytheMATLABparserandcanproduceuntrappederrorsandotherunexpectedbehavior.Usethesecondsyntaxinstead:
%Notrecommended
eval('[a1,a2,a3,...]=function(var)')
%Recommendedsyntax
[a1,a2,a3,...]=eval('function(var)')
Examples
Example1–WorkingwithaSeriesofFiles
LoadMAT-filesAugust1.mattoAugust10.matintotheMATLABworkspace:
ford=1:
10
s=['loadAugust'int2str(d)'.mat']
eval(s)
end
Thesearethestringsbeingevaluated:
s=
loadAugust1.mat
s=
loadAugust2.mat
s=
loadAugust3.mat
-etc.-
Example2–AssigningtoVariableswithGeneratedNames
GeneratevariablenamesthatareuniqueintheMATLABworkspaceandassignavaluetoeachusingeval:
fork=1:
5
t=clock;
pause(uint8(rand*10));
v=genvarname('time_elapsed',who);
eval([v'=etime(clock,t)'])
end
Asthiscoderuns,evalcreatesauniquestatementforeachassignment:
time_elapsed=
5.0070
time_elapsed1=
2.0030
time_elapsed2=
7.0010
time_elapsed3=
8.0010
time_elapsed4=
3.0040
Example3–EvaluatingaReturnedFunctionName
ThefollowingcommandremovesafigurebyevaluatingitsCloseRequestFcnpropertyasreturnedbyget.
eval(get(h,'CloseRequestFcn'))
☆int2str
Convertintegertostring
Syntax
str=int2str(N)
Description
str=int2str(N)convertsanintegertoastringwithintegerformat.TheinputNcanbeasingleintegeroravectorormatrixofintegers.Nonintegerinputsareroundedbeforeconversion.
Examples
int2str(2+3)isthestring'5'.
Onewaytolabelaplotis
title(['casenumber'int2str(n)])
Formatrixorvectorinputs,int2strreturnsastringmatrix:
int2str(eye(3))
ans=
100
010
001
☆num2str
Convertnumbertostring
Syntax
str=num2str(A)
str=num2str(A,precision)
str=num2str(A,format)
Description
Thenum2strfunctionconvertsnumberstotheirstringrepresentations.Thisfunctionisusefulforlabelingandtitlingplotswithnumericvalues.
str=num2str(A)convertsarrayAintoastringrepresentationstr.Convertedfloating-pointvalueshaveamaximumoffourdigitsofprecision,andanexponentifrequired.Forintegervalues,num2strreturnstheexactstringrepresentationofthevalue.
str=num2str(A,precision)convertsthearrayAintoastringrepresentationstrwiththemaximumnumberofdigitsspecifiedbyprecision.
str=num2str(A,format)convertsarrayAusingthesuppliedformat,asdescribedonthefprintffunctionreferencepage.Bydefault,num2strdisplaysfloatingpointvaluesusingthe'%11.4g'format(foursignificantdigitsinexponentialorfixed-pointnotation,whicheverisshorter).
Tips
Unlikefprintf,thenum2strfunctiontrimsanyleadingspacesfromastring,evenwhenusedwiththespacecharacterflag.Forexample,num2str(42.67,'%10.2f')returnsa1-by-5characterarray'42.67'.
Examples
num2str(pi)is3.142.
num2str(eps)is2.22e-16.
num2str(randn(2,2),3)producesthefollowingstringmatrix:
num2str(randn(2,2),3)
ans=
0.538-2.26
1.830.862
num2strwithaformatof%10.5e\nreturnsamatrixofstringsinexponentialformat,having5decimalplaces,witheachelementseparatedbyanewlinecharacter:
x=rand(2,3)*9999;%Createa2-by-3matrix.
A=num2str(x,'%10.5e\n')%Converttostringarray.
A=
6.87255e+003
1.55597e+003
8.55890e+003
3.46077e+003
1.91097e+003
4.90201e+003
☆genvarname
Constructvalidvariablenamefromstring
Syntax
varname=genvarname(str)
varname=genvarname(str,exclusions)
Description
varname=genvarname(str)constructsastringvarnamethatissimilartoorthesameasthestrinput,andcanbeusedasavalidvariablename.strcanbeasinglecharacterarrayoracellarrayofstrings.Ifstrisacellarrayofstrings,genvarnamereturnsacellarrayofstringsinvarname.Thestringsinacellarrayreturnedbygenvarnameareguaranteedtobedifferentfromeachother.
varname=genvarname(str,exclusions)returnsavalidvariablenamethatisdifferentfromanynamelistedintheexclusionsinput.Theexclusionsinputcanbeasinglecharacterarrayoracellarrayofstrings.SpecifythefunctionwhointheexclusionscharacterarraytocreateavariablenamethatwillbeuniqueinthecurrentMATLABworkspace(seeExample4,below).
Note genvarnamereturnsastringthatcanbeusedasavariablename.ItdoesnotcreateavariableintheMATLABworkspace.Youcannot,therefore,assignavaluetotheoutputofgenvarname.Tips
AvalidMATLABvariablenameisacharacterstringofletters,digits,andunderscores,suchthatthefirstcharacterisaletter,andthelengthofthestringislessthanorequaltothevaluereturnedbythenamelengthmaxfunction.Anystringthatexceedsnamelengthmaxistruncatedinthevarnameoutput.SeeExample6,below.
ThevariablenamereturnedbygenvarnameisnotguaranteedtobedifferentfromothervariablenamescurrentlyintheMATLABworkspaceunlessyouusetheexclusionsinputinthemannershowninExample4,below.
Ifyouusegenvarnametogenerateafieldnameforastructure,MATLABdoescreateavariableforthestructureandfieldintheMATLABworkspace.SeeExample3,below.
Ifthestrinputcontainsanywhitespacecharacters,genvarnameremovesthenandcapitalizesthenextalphabeticcharacterinstr.Ifstrcontainsanynonalphanumericcharacters,genvarnamet
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 知识 总结