欢迎来到天天文库
浏览记录
ID:13816777
大小:28.50 KB
页数:5页
时间:2018-07-24
《第三章 matlab程序设计补充材料》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、程序设计补充材料第一节M文件1、M文件大量的Matlab代码(指令)罗列成文件,送MATLAB系统中解释运行。2、M文件的分类(1)命令式文件(脚本script)(2)函数式文件(function)3、两类文件的区别(1)命令式文件没有输出输入参量,函数式文件有(2)命令式文件运行中可以调用工作空间的数据,运行中产生的所有变量为全局变量。函数式文件不能调用工作空间的数据,运行中产生的所有变量为局部变量(3)命令式文件可以直接运行,函数式文件不能,只能调用4、函数式文件(function)的构成(1)函数定义行 Function[输出参量]=gauss(输入参量)(2)函数体完
2、成函数的功能(3)函数说明(4)函数行注5、例子(funave1)(funave2)funave1:function[average]=funave(vectory);average=sum(sum(vectory))/length(vectory);funave2:(定义二维数组时输出的平均值)function[ave1,ave2]=funave2(vectory1,vectory2)ifnargin=1 ave1=sum(sum(vectory1))/length(vectory1);endifnargin=2 ave1=sum(sum(vectory1))/le
3、ngth(vectory1); ave2=sum(sum(vectory2))/length(vectory2);end第二节程序的流程控制1.关系运算符==等于<=小于等于~=不等于>=大于等于<小于>大于2.条件分支语句(if-else-end)如果-那么-否则(1)结构 If...else if...else...end注意这一结构的条件优先问题(2)条件的嵌套。(exlin.m)exlin:functionf=exlin(x)ifx<0 f=0;elseifx<1 f=x;elseifx<2 f=2-x;else f=0end3.硬循环语句(for
4、-end)(1)结构:for(循环变量)end。(2)exno49exno49:n=5; %每个for和if都必须对应一个endfori=1:n forj=1:n ifi==j a(i,j)=2 else a(i,j)=0 end endenda%问:根据结果,如果要两条主对角线元素都为2,如何调用此过程答:加上一句ifi==n1-ja(i,j)=24.条件循环语句(while-end)当.....就.....(1)结构:while(表达式)end(2)例:求阶乘大于或等于9999的最小整数
5、(exno50)exno50:n=1;whileprod(1:n)<99^99; %prod()向量元素的乘积 n=n1endn5.分支循环语句(switch-case-otherwise-end)(1)结构:switch(开关量)(2)(exno51)exno51:a=input('a=?')switcha case1 disp('Itisraining') case0 disp('Itdonotknow') case-1 disp('Itisnotraining') otherwise disp('Iti
6、sraniing?')end 第三节程序的调试1.语法和逻辑两种错型2.根据出错信息调试命令窗的提示,注意一般情况不加;号调试3.设置断点来判断breakpoints4.利用keyboard命令来判断当出现k>>时return5.变量的鼠标观测法6.代码运行的计时方法(1)整段程序代码的计时tic...toc表示计算tic与toc之间的时间(exno57)(2)也可以用etime(t1,t2)来计算t1,t2之间的时间差来完成上述功能(exno58)(3)也可以用cputtime变量来完成上述功能(exno59)exno57:tica=rand(300);inv(a);%
7、计算逆矩阵toc%注:程序中不需要显示结果的就不显示,可以节省时间exno58:t0=clocka=rand(300);inv(a);%计算逆矩阵elapsed_time=etime(clock,t0)7.程序代码的优化(1)程序代码的向量化(exno61)(2)用矩阵结构进行运算(exno62)一般情况下,完全采用矩阵运行的方式,MATLAB的程序与C语言基本相同。这必须对矩阵非常熟悉,例如 x=[123;121] a=[456]希望将a中的每一个元素乘以x的每一列,用diag(x)(3)矩阵的预先配
此文档下载收益归作者所有