logo资料库

Matlab 编程必备手册.pdf

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
aaa123quwt
Matlab编程必备手册(适合初学者)
1.pdf
Matlab编程必备手册.pdf
编程格式规范
一.编程原则
二. 编程规则
三. 注释规则
编程入门
一.前言
二.M文件
三.程序实例
程序控制结构
一.顺序结构
二.选择结构
If条件语句
switch 语句
三.循环结构
for 循环
while 循环
四.其它流控制语句
break 和 continue
return
Matlab常用函数及函数实例
一.常用函数列表
二.常用函数举例
MATLAB/Simulink/C++/Java等编程援助 联系方式: QQ:806268790 邮箱:806268790@qq.com QQ 空间:http://806268790.qzone.qq.com 更多学习资料,请加我为 QQ 好友,或者访问我的 QQ 空间 有编程问题的朋友,请直接加我为QQ好友,提供在线答疑 如果我QQ不在线,请将问题发到我的邮箱,及时给你答复 专业提供以下方向的编程援助: 1. MATLAB/Simulink/C++/Java等编程问题; 2. 数字图像处理、信号处理、通信仿真设计; 3. 机器人路径规划、轨迹规划、机器人控制; 4. 各类数值计算、小波分析算法、优化设计; 5. 自动控制、电机控制、智能控制、模糊控制; 6. 粒子群算法、神经网络、遗传算法等智能算法; 7. 其他编程和仿真问题。 郑重声明:本资料整理于网络,仅限交流使用,切勿用做商业用途!
Matlab 编程必备手册 北京索为高科系统技术有限公司 雒海涛 2011-02-11 编程格式规范 这儿把编程格式规范放在最前面希望大家在学习之前认真阅读该部分,对后面的 matlab 编 程大有裨益。 一.编程原则 1. 正确:能准确实现原仿真目的; 2. 高效:循环向量化,少用或不用循环,尽量调用 MATLAB 自带函数; 3. 清晰:养成良好的编程习惯,程序具有良好的可读性; 4. 通用:程序具高度的可移植性,同时易于扩展,避免同学之间重复工作。 二. 编程规则 1. 定义变量,以英文单词小写缩写开头表示类别名,再接具体变量的英文名称英文单词, 具体变量首字母大写。 教研室常用类别缩写:最大值 max,最小值 min 例如:定义变量存贮临时数组 TempArray 的最大值 maxTempArray 依照工程大小确定变量名长短,小范围应用的变量应该用短的变量名。定义务必清晰,避免 混淆。 2. 循环变量使用常用变量 i,j,k;程序中使用复数时,采用 i,j 以外的循环变量以避免和虚数 单位冲突,同时要在注释部分说明变量意义。 3. 程序应高内聚、低耦合、模块函数化,便于移植、重复使用。 4. 使用 if 语句判断变量是否等于某一常数时,将常变量数写在等号之前,常数写在等号之 后。 例如判断变量 a 是否等于 100 写作 if a ==100。 5. 用常数代替数字,少用或不用数字。 例如上一条:写作 if a = =100 就不标准。应先定义 meanConst=100;为期望常量。同时在注 释中说明,然后在程序部分写作:if a = =const;如果要修改期望常量的话,只要在程序定义 部分修改就可以,不必再逐行修改,此外还易于在该程序的基础上增加其他功能。 三. 注释规则 1. 注释要用汉语,且用一个“%”连接文字作为注释开始标志。程序的起始要注明作者、时 间、程序功能、复杂的算法需要加上流程说明。对于比较复杂的程序,由几个人协作完成, 要在每一个模块的起始分别注明作者、时间、程序功能。注释采用 matlab 的注释符号。同 时第一行增加关键字,便于将来程序文件较多时,使用 help 和 lookfor 查找。例如: %关键字%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%此处为函数名,如果不是函数文件就取消此行 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %创建人: %日 期: %修改人: %日 期: %函数变量及功能的简单描述 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2. 对于所有有物理含义的变量、常量、数据结构声明,在声明时都必须加以注释,说明其 物理含义,单位。 3. 源程序有效注释量必须在 20%以上,边写代码边注释,修改代码同时修改相应的注释, 以保证注释与代码的一致性,不再有用的注释要删除。注释语言必须准确、易懂、简洁,尽 量不要用缩写。如果接手前人的程序,在维护过程中需要对变量以及源程序作部分修改及 补 充,在修改变量及程序注释的同时需要在修改的位置标明修改人的名字及修改日期。 对原程序修改要及时修改注释。否则有注释比没有注释还要糟糕。 4. 程序内部不同功能模块要空一行,同时附注释说明模块的作用、功能。这样程序结构清 晰易懂,便于同学间学习交流。 例如: …模块一…代码… 此处为空行 %注释说明下一模块的功能%%%%%%% …模块二…代码… 5. 一行代码不宜过长,应限制在 80 列之内。一旦有过长代码须用 MATLAB 转接符号“...” 连接两行代码,以便于同学之间打印程序交流。因为大多是打印机的行长度为 80。 例 : 第一行代码 nVariable=1+1+1++1+1+1+1+1+1+11+1+1+1+1+1+1+1+1+1+1+1+1... 第二行代码 +1+1+1; 编程入门 一.前言 Matlab 作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算、符号计算、 矩阵运算能力和丰富的绘图功能,同时也具有和 C、FORTRAN 等高级语言一样进行程序设 计。 利用 Matlab 的程序控制功能,可以将有关 Matlab 命令编成程序存储在一个文件中(M 文 件),然后在命令窗口中运行该文件,Matlab 就会自动依次执行文件中的命令,直到全部命 令执行完毕。 在 Matlab 程序设计中,要充分利用 Matlab 数据结构的特点,提高编程效率。
二.M 文件 M 文件以 .m 为扩展名。M 文件是由若干 Matlab 命令组合在一起构成的,它可以完 成某些操作,也可以实现某种算法。事实上,Matlab 提供的内部函数以及各种工具箱,都 是利用 Matlab 语言开发的 M 文件。用户也可以结合自己的工作需要,开发自己的程序或 工具箱。 M 文件根据调用方式的不同可以分为两类:Script:脚本文件/命令文件 ,Function: 函数文件。它们均是普通的 ASCII 码构成的文件。M 脚本文件中包含一族由 MATLAB 语言 所支持的语句,它类似于 DOS 下的批处理文件,它的执行方式很简单,用户只需在 MATLAB 的提示符 >> 下键入该 M 文件的文件名,这样 MATLAB 就会自动执行该 M 文件中的各 条语句,并将结果直接返回到 MATLAB 的工作空间。M 函数格式是 MATLAB 程序设计的 主流,一般情况下, 不建议您使用 M 脚本文件格式编程。 MATLAB 的 M 函数是由 function 语句引导的,其基本格式如下: function [返回变量列表] = 函数名 (输入变量列表) 注释说明语句段, 由 % 引导 输入、返回变量格式的检测 函数体语句 建议:M 文件名与文件内主函数名相同(matlab 是以文件名做区分的,当然函数名和文件 名也可以不同)。 三.程序实例 1.脚本文件举例:编写一个脚本文件将华氏温度转化为摄氏温度。 c = f − 32) 5 ( 9 新建一个 M 文件 f2cs.m,内容如下: clear; % 清除当前工作空间中的变量 f=input('Please input Fahrenheit temperature:'); c=5*(f-32)/9; fprintf('The centigrade temperature is %g\n',c); 在命令窗口中输入 f2cs,即可执行该 M 文件。 2.function 文件举例:计算两个数字之和。 新建一个 m 文件,命名为 MySum.m,内如如下: function rt = MySum(x,y) rt=x+y; end 在命令窗口输入 MySum(10,20)即可输出计算结果。
程序控制结构 一.顺序结构 按排列顺序依次执行各条语句,直到程序的最后,这是最简单的一种程序结构,一般涉及数 据的输入输出、数据的计算或处理等。 二.选择结构 选择结构 是根据给定的条件成立或不成立,分别执行不同的语句。Matlab 用于实现选择结 构的语句有 if 语句和 switch 语句。 If 条件语句 单分支结构 if expression (条件) statements (语句组) end 双分支结构 if expression (条件) statements1(语句组 1) else statements2(语句组 2) end 多分支结构 if expression1 (条件 1) statements1(语句组 1) elseif expression2 (条件 2) statements2(语句组 2) ... ... elseif expressionm (条件 m) statementsm(语句组 m) else statements(语句组) end if 语句举例 数论中的一个有趣问题:任取一个正整数,如果是偶数,用 2 除,如果是奇数,用 3 乘再 加 1,反复这个过程,直到所得到的数为 1。 问:是否存在使该过程永不中止的整数? while 1 n=input('Please enter n(nonpositive quit):');
if n<=0, break; end nt=n; while n>1 if rem(n,2)==0 n=n/2; else n=3*n+1; end fprintf('\n n=%d',n); end fprintf('\n n=%d is not we need! continue ... \n', nt); end switch 语句 根据表达式的不同取值,分别执行不同的语句。 switch expression (表达式) case value1 (表达式 1) statement1(语句组 1) case value2 (表达式 2) statement2(语句组 2) ... ... case valuem (表达式 m) statementm(语句组 m) otherwise statement (语句组) end  Matlab 首先计算 expression 的值,然后将它依次与各个 case 指令后的检测值进 行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch 结构。  如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch 结 构。  otherwise 指令可以不出现。  switch 后面的表达式 expression 的值可以是一个标量或字符串。 三.循环结构 循环结构 是按照给定的条件,重复执行指定的语句。Matlab 用于实现循环结构的语句有 for 语句和 while 语句 for 循环 for variable=expression
statement(循环体) end 表达式 expression 可以是行向量,也可以是矩阵 while 循环 while expression (条件) statement(循环体) end  循环语句可以嵌套使用  不能在 for 循环体内改变循环变量的值  为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for 循环的使用  如果预先就知道循环的次数,则可以采用 for 循环;否则,如果预先无法确定循环 的次数,则可以使用 while 循环。 四.其它流控制语句 break 和 continue  break 语句用于终止循环的执行,即跳出最内层循环  continue 语句用于结束本次循环,进行下一次循环  break 和 continue 一般与 if 语句配合使用 return  return 语句用于退出正在运行的脚本或函数,通常用在函数文件中。 Matlab 常用函数及函数实例 一.常用函数列表 =============================================== 小整理:MATLAB 常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数 z 的相角(Phase angle) sqrt(x):开平方 real(z):复数 z 的实部 imag(z):复数 z 的虚部 conj(z):复数 z 的共轭复数
round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数 x 化为分数表示 rats(x):将实数 x 化为多项分数展开 sign(x):符号函数 (Signum function)。 当 x<0 时,sign(x)=-1; 当 x=0 时,sign(x)=0; 当 x>0 时,sign(x)=1。 rem(x,y):求 x 除以 y 的馀数 gcd(x,y):整数 x 和 y 的最大公因数 lcm(x,y):整数 x 和 y 的最小公倍数 exp(x):自然指数 pow2(x):2 的指数 log(x):以 e 为底的对数,即自然对数或 log2(x):以 2 为底的对数 log10(x):以 10 为底的对数 =============================================== 小整理:MATLAB 常用的三角函数 sin(x):正弦函数 cos(x):馀弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 ==================================================== 小整理:适用於向量的常用函数有: min(x): 向量 x 的元素的最小值 max(x): 向量 x 的元素的最大值 mean(x): 向量 x 的元素的平均值 median(x): 向量 x 的元素的中位数 std(x): 向量 x 的元素的标准差 diff(x): 向量 x 的相邻元素的差
分享到:
收藏