第三章 MATLAB程序设计基础Word格式.docx
- 文档编号:16283593
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:15
- 大小:24.77KB
第三章 MATLAB程序设计基础Word格式.docx
《第三章 MATLAB程序设计基础Word格式.docx》由会员分享,可在线阅读,更多相关《第三章 MATLAB程序设计基础Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
WK1-Lotus123worksheetwk1readDoublearrayandcellarray.
Scientificdataformats
CDF-CommonDataFormatcdfreadCellarrayofCDFrecords
FITS-FlexibleImageTransportSystemfitsreadPrimaryorextensiontabledata
HDF-HierarchicalDataFormathdfreadHDForHDF-EOSdataset
Movieformats
AVI-MovieavireadMATLABmovie.
Imageformats
TIFF-TIFFimageimreadTruecolor,grayscaleorindexedimage(s).
PNG-PNGimageimreadTruecolor,grayscaleorindexedimage.
HDF-HDFimageimreadTruecolororindexedimage(s).
BMP-BMPimageimreadTruecolororindexedimage.
JPEG-JPEGimageimreadTruecolororgrayscaleimage.
GIF-GIFimageimreadIndexedimage.
PCX-PCXimageimreadIndexedimage.
XWD-XWDimageimreadIndexedimage.
CUR-CursorimageimreadIndexedimage.
ICO-IconimageimreadIndexedimage.
RAS-SunrasterimageimreadTruecolororindexed.
PBM-PBMimageimreadGrayscaleimage.
PGM-PGMimageimreadGrayscaleimage.
PPM-PPMimageimreadTruecolorimage.
Audioformats
AU-NeXT/SunsoundaureadSounddataandsamplerate.
SND-NeXT/SunsoundaureadSounddataandsamplerate.
WAV-MicrosoftWavesoundwavreadSounddataandsamplerate.
3.数据输入向导(Importwizard)
File菜单下的工具ImportWizard用于将各种类型数据文件中的数据导入工作空间,称为数据输入向导。
在Import对话框中输入需要导入的数据文件名后出现ImportWizard窗口,可预观测将要导入的数据、显示图象、播放声音等。
几种数据的导入:
(1)mat数据文件(matdatafile)
调入途径:
File输入文件名,也可用Browse打开文件浏览器选择输入文件;
Clipboard,数据从剪贴板中调入。
窗口内容:
左侧,变量名称、大小、类型。
右侧观察前10行10列信息。
Next:
显示数据输入向导窗口第二页。
(ASCⅡcodedatafile)输入ASCⅡ数据文件名---选择显示数据内容(data)或头文本内容(textdata)---选择Next下一页进行导入内容选择(通过钩选决定将何变量导入工作空间)----按Finish完成导入操作或按Cancel终止数据的导入。
(3)图象数据文件:
(Graphicsdatafile)输入图形数据文件名---点击showimage(可在图象上拖曳放大区域)------按Finish完成数据导入(或按Cancel终止数据导入)。
(4)声音数据文件:
(Sounddatafile)输入声音数据文件名---点击PlaySound弹出一个显示声音数据波形的图形窗口(按Playagine按钮重新播放声音,按Done按钮关闭预观察窗口)------按Finish完成数据导入(或按Cancel终止数据导入)。
(5)剪贴板的数据:
(Clipboarddata)需要导入已存放在系统剪贴板中的数据,点数据输入向导窗口中的Clipboard选项,--Next进入下一页--按Finish完成数据导入(或按Cancel终止数据导入)。
二.M文件(M-file)
MATLAB的两种工作方式:
1,交互式命令操作方式(interactivemode)—通过命令窗口进行交互式操作;
2,M文件(M-file)的编程工作方式(programmingmode)。
1.M文件编程:
(M-fileprogram)可用普通文本编辑器编制MATLAB文件,文件由纯ASCⅡ字符组成,确定文件名后加.m扩展名,称为M文件。
MATLAB提供了一个方便的编辑/调试器,功能较多,推荐使用。
建立M文件的一般步骤:
(normalprocessofM-filecreating)
(1)打开文件编辑器:
(Openingthefileeditor)最简单的方法是在操作桌面的工具栏上选择新建文件键(NewM-File)或打开已有文件键(OpenFile),也可以在命令窗口输入命令edit建立新文件或输入editfilename,打开名为filename的M文件;
(2)编写程序内容:
(Composetheprogramcontent)编写新的文件或修改已有文件;
(3)保存文件:
(savefile)文件运行前必须完成保存操作,与一般的文件编辑保存操作相同;
(4)运行文件:
(runningfile)在命令窗口输入文件名即可运行。
如要在编辑器中直接完成运行,可在编辑器的Debug菜单下saveandrun选项,或按Run快捷键,最快捷的方法是直接按F5键执行运行。
M文件有两种形式:
命令(脚本)文件(ScriptFile)和函数文件(FunctionFile)
2.命令文件:
(ScriptFile)M文件中最简单的一种,是可用于自动重复执行的一组MATLAB命令和函数组合,不需输出输入参数,用M文件可以调用工作空间已有的变量或创建新的变量。
运行过程中产生的变量都是全局变量。
建立一个命令文件等价于从命令窗口中顺序输入文件里的命令,程序不需要预先定义,只要依次将命令编辑在命令文件中,再将程序保存成为扩展名为.m的M文件即可。
运行命令文件时,只需在命令窗口键入文件名即可。
例:
用三角函数计算画出花瓣图形。
theta=-pi:
0.01:
pi;
rho(1,:
)=2*sin(5*theta).^2;
%计算四种不同rho
rho(2,:
)=cos(10*theta).^3;
rho(3,:
)=sin(theta).^2;
rho(4,:
)=5*cos(3.5*theta).^3;
fork=1:
4
Subplot(2,2,k),
polar(theta,rho(k,:
))
end
将程序保存成名为petals的M文件,并运行。
注:
(1)‘%‘引导注释行,不予执行;
(2)不需要用“end”作为M文件的结束标志;
(3)若文件存放在自己的目录上,在运行文件前,应先将自己的目录设置为当前工作目录。
最简单方法:
在当前目录浏览器中设置。
(4)运行后存放在工作空间的变量可以用工作空间浏览器查看。
3。
函数文件(FunctionFile)
如果M文件的第一个可执行行以function开始,便是函数文件,每一个函数文件定义一个函数。
函数文件区别于命令文件之处在于命令文件的变量在文件执行完成后保留在工作空间中,而函数文件内定义的变量只在函数文件内起作用,文件执行完后即被清除。
建立average函数用于计算矢量中单元的平均值。
functiony=average(x)
%AVERAGEMeanofvectorelements.
%AVERAGE(X),WhereXisavector,isthemeanofvectorelement.
%Non-vectorinputresultsinanerror.
[m,n]=size(x);
if(~((m==1)|(n==1))|(m==1&
n==1))
error('
Inputmustbeavector'
)
end
y=sum(x)/length(x);
将文件存盘,缺省状态下自动存储名为average.m的函数。
这样只要接受一个输入参数便可计算返回一个输出参数,与其他MATLAB函数一样使用。
用已建立的average函数文件求1~99的平均值。
z=1:
99;
average(z)
函数文件的基本组成部分:
(1)函数定义行:
(thelinesforfunctionidentification)由function引导,并定义函数名、输入参数和输出参数,函数定义行必须放在文件的第一个可执行上。
可以设多个输入输出参数,如:
function[x,y,z]=sphere(theta,phi,rho)
也可以没有输出参数,如:
functionprintresults(x)
(1)H1行:
(LinesH1)lookfor查询时使用的;
(2)帮助文本:
(Helptext)建立在线查询信息;
(3)函数体:
(Functionbody)包含全部的用于完成计算及给输出参数赋值等工作的语句;
(4)注释:
(explanatorynotes)以%起始导行尾结束部分的说明文字。
可放置在程序中的任何部位。
2.局部变量与全局变量(LocalvariableandGlobalvariable)
用global就可以把一个变量定义为全局变量。
MATLAB中变量名是区分大小写的,习惯上常将大写字母定为全局变量。
如:
globalABC
三.程序结构(Structureofprogram)
8种控制程序流程(controlflowstatement)的语句:
for,while,if,switch,try,continue,break,return
1。
循环语句(Loopstatement)
(1)for语句:
forv=表达式通常为一个矢量,形式为:
m:
s:
n(初值:
步长:
終值)
语句体
n=10
fori=1:
n
x(i)=(i+1).^2;
x
x=
49162536496481100121
嵌套循环:
注意与end的配对。
m=3;
n=4;
m
forj=1:
a(i,j)=1/(i+j-1);
end
formatrat
a
a=
11/21/31/4
1/21/31/41/5
1/31/41/51/6
运用非1步长,产生0-20以内的偶数
fori=0:
2:
20%(j=0:
10)(j=i/2)
a(i/2+1)=i;
%(a(j+1)=2*j)
02468101214161820
(2).While语句:
为条件循环语句。
循环不确定次数,只要表达式的结果非零,语句体就重复执行,直到循环条件不成立为止。
While表达式
while循环,求解n!
达到100位数的第一个n是多少。
n=1;
whileprod(1:
n)<
1e100
n=n+1;
n=
70
2.条件语句(Selectionstatement)
(1)if—end语句(simpleifstatement)
if表达式
(2)if—else--end语句
语句体1;
else
语句体2:
当计算的表达式结果为真时执行语句体1,结果为假时执行语句体2。
判断学生是否通过学业。
if((attendance>
=0.90)&
(grade>
=60))
pass=1;
fail=1;
(1)if—elseif—end语句
if表达式1
elseif表达式2
语句体2;
语句体3;
用色彩区分数据点的范围。
n=100;
x=1:
n;
y=randn(1,n);
holdon
ify(i)<
-1
plot(x(i),y(i),'
*g'
elseify(i)>
=-1&
y(i)<
=1
ob'
plot(x(i),y(i),'
xr'
holdoff
(3)分支语句:
switch—case—end
通过对某个变量值的比较做各种不同的执行选择。
形式:
switch表达式(数字或字符串)
case数字或字符串1
语句体1;
case数字或字符串2
语句体2;
……
otherwise
语句体n;
检查input_num的数值.
switchinput_num
case-1
disp(‘negativeone’);
%当input_num=-1时显示
case0
disp(‘zero’);
%当input_num=0时显示
case1
disp(‘positiveone’);
%当input_num=1时显示
disp(‘othervalue’);
%当input_num等于其他值时显示
(4)检测语句:
(Detectstatement)
try-catch语句用于检测错误并改变流程,形式:
try
语句体1
catch
语句体2
先执行try下面的语句体1,如没有错误,就跳出该结构,如出错误,则执行catch语句下面的语句体2。
可用lasterr函数查询错误信息,查询结果为空字符串时表示语句体1成功执行。
判断错误语句的用法
a=magic(3)
a_n=a(n,:
),%取a的第n行元素
a_n=a(end,:
),%如取a的第n行出错,则改取a的最后一行
lasterr%显示出错原因
816
357
492
a_n=
ans=
Indexexceedsmatrixdimensions.
(5)其他流程控制语句:
(Othercontrolflowstatement)
(a),continue语句:
用于控制for循环和while循环跳过某些执行语句。
(continue语句的用法).侦测某文件的行数
fid=fopen('
magic.m'
'
r'
);
%打开文件
count=0;
%计数器置零
while~feof(fid)%判断是否到文件末尾
line=fgetl(fid);
ifisempty(line)|strncmp(line,'
%'
1)
%判断是否为空行或注释行
continue%如果是空行或注释行继续下一次循环
count=count+1;
%如果不是空行或注释行计数器加1
disp(sprintf('
%dlines'
count));
%显示行数
25lines
(b).break语句:
用于终止for循环和while循环的执行.
(break语句的用法).判断是否空行,决定是否推出循环
fid=fopen(‘fft.m’,’r’);
%打开文件
s=’‘;
%清空字符数组
while~feof(fid)%判断是否为文件末尾
line=fgetl(fid);
%从文件中读行
ifisempty(line)%如果是空行
break%如果是空行退出循环
s=strvcat(s,line);
%如果不是空行,丛向连接字符数组
disp(s)%显示字符数组结果
(c)return语句:
用于终止当前的命令序列,并返回到调用的函数或键盘。
(return语句的用法).在满足某条件是返回调用函数
functiond=det(A)%定义函数det(A)计算矩阵A的行列式
ifisempty(A)%如果矩阵是空的
d=1;
return%返回调用函数
…%计算过程略
四.数据的输入与输出(Dateinputandoutput)
1.数据的输入(Datainput)
常用方法:
(a)键盘输入:
(keyboardinput)数据少时较方便,多时不益使用;
(b)用M文件产生数据:
(GeneratedatabyM-file)使用于较多数据的输入;
(C)从ASCⅡ码文件装载数据:
(LoaddatafromASCⅡcodefile)
(c)对文本格式的数据文件可用load命令直接读入MATLAB,其内容存放在以文件名命名的变量中
(d)利用fopen,fscanf,fread及MATLAB其他低层I/O命令读取数据:
用于读取其他外部应用程序建立的各种特定格式的数据。
2。
数据的输出(dataoutput)
(a)利用diary命令输出语句:
运行diary命令可以在当前工作目录上产生一个名为diary的日记文件,文件内容可以输出。
关闭日记文件的命令为dairyoff.
DIARYSavetextofMATLABsession.
DIARYFILENAMEcausesacopyofallsubsequentcommandwindowinputandmostoftheresultingcommandwindowoutputtobeappendedtothenamedfile.Ifnofileisspecified,thefile'
diary'
isused.
(b)利用Notebook获取数据:
于dairy用法相仿优点是文字质量高,版面规范,且M-book中的命令可以随时运行或修改,MATLAB工作空间中的数据随之改变。
运行Notebook要求计算机上装有MS-Word。
NOTEBOOKOpenanm-bookinMicrosoftWord(Windowsonly).
NOTEBOOK,byitself,launchesMicrosoftWordandcreatesanewm-bookcalled"
Document1."
NOTEBOOK(FILENAME)launchesMicrosoftWordandopensthem-bookFILENAME.
NOTEBOOK('
-SETUP'
)runsaninteractivesetupfunctionfortheNotebook.TheuserispromptedfortheversionofMicrosoftWordandthelocationsofseveralfiles.
WORDVER,WORDLOC,TEMPLATELOC)set
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 MATLAB程序设计基础 第三 MATLAB 程序设计 基础
![提示](https://static.bdocx.com/images/bang_tan.gif)