matlab语言及其在电子信息工程中的应用_第1页
matlab语言及其在电子信息工程中的应用_第2页
matlab语言及其在电子信息工程中的应用_第3页
matlab语言及其在电子信息工程中的应用_第4页
matlab语言及其在电子信息工程中的应用_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

许钢

2023/4/3Matlab语言及其在电子信息工程中的应用1Matlab语言及其在

电子信息工程中的应用许钢

2023/4/3Matlab语言及其在电子信息工程中的应用2第四讲MATLAB程序设计一、M文件二、控制语句三、字符与字符串四、函数的调用五、程序的优化(“逻辑判断和流程控制”其编程思想和C、Basic等高级语言类似,具体语法请同学们自学!)许钢

2023/4/3Matlab语言及其在电子信息工程中的应用3第四讲MATLAB程序设计一、M文件1、命令文件例1、计算小于1000的fibonnaci数%计算小于1000的fibonnaci数f=[1,1];i=1;whilef(i)+f(i+1)<1000f(i+2)=f(i)+f(i+1);i=i+1;endf,i以fibo.m存在自己的工作目录。许钢

2023/4/3Matlab语言及其在电子信息工程中的应用4第四讲MATLAB程序设计一、M文件2、函数文件例2、编制一个计算小于任何自然数(输入参数)的Fibonnaci数的函数文件functionf=ffibo(n)%ffibo

是计算Fibonnaci数的函数%调用格式:ffibo(n)%计算小于n的Fibonnaci数ifnargout>1,error(‘Toomanyoutputarguments.’);end%检查输出参数ifnargin==0|nargin>1

error(‘Wrongnumberofinputarguments.’);%检查输入参数endf=[1,1];i=1;whilef(i)+f(i+1)<nf(i+2)=f(i)+f(i+1);i=i+1;end以ffibo.m名字存盘。运行:helpffibo、ffibo(2000)许钢

2023/4/3Matlab语言及其在电子信息工程中的应用5第四讲MATLAB程序设计一、M文件3、命令文件和函数文件的区别命令文件的变量在文件执行完以后,仍然驻留在内存中,而函数文件中的变量仅在函数文件内部起作用,当函数文件执行完以后,这些变量将被清除。许钢

2023/4/3Matlab语言及其在电子信息工程中的应用6第四讲MATLAB程序设计二、控制语句1、For循环例1:给出余弦函数在[0,pi]区间上以pi/10为步长的函数表forn=1:10

x(n)=cos(n*pi/10);end>>xx=Columns1through60.95110.80900.58780.30900.0000-0.3090Columns7through10-0.5878-0.8090-0.9511-1.0000注:for

后面的n=1:10是一个标准的创建数组语句,也可以用定义好的数组直接赋给n;许钢

2023/4/3Matlab语言及其在电子信息工程中的应用7第四讲MATLAB程序设计二、控制语句1、For循环注:当利用for循环时,为了提高速度,应先分配数组(即:定维)。例:用计时函数tic,toc比较两种方法所费的时间(1)不先定义数组tic;fori=1:100;x(i)=cos(i*pi/100);end;toc(2)先定义数组tic;x=zeros(1,100);fori=1:100;x(i)=cos(i*pi/100);end;toc许钢

2023/4/3Matlab语言及其在电子信息工程中的应用8第四讲MATLAB程序设计二、控制语句2、控制程序流的其它几个常用命令a=input('*****')等待从键盘输入一个值,输入完后,按Enter键,继续;引号内为提示文字例:等待键盘输入一个数字或一个字符串>>a=input('请输入变量a的值>')请输入变量a的值>5a=5>>a=input('请输入变量a的值>')请输入变量a的值>'yournameisFax'a=yournameisFax在这种格式下,a可以是数字也可以是字符串。例:只能输入字符串的格式>>a=input('pleaseinputastring:','s')pleaseinputastring:'Fax'a='Fax'许钢

2023/4/3Matlab语言及其在电子信息工程中的应用9第四讲MATLAB程序设计二、控制语句2、控制程序流的其它几个常用命令

暂停命令pause,pause(n)的使用

当需要看中间运算结果时可以使用这个命令,回车后程序继续运行。

keyboard将控制权暂时交给键盘,然后当用户输入return时,控制权还给MATLABbreak中断,在for循环中,和if语句配合,跳出循环;continue跳过位于其后的循环中的其它命令,执行循环的下一步迭代return结束return所在的函数的执行error('*****')显示出错信息*****,并终止程序;warning(‘****’)显示告警信息****,程序继续运行。许钢

2023/4/3Matlab语言及其在电子信息工程中的应用10第四讲MATLAB程序设计三、字符与字符串1、在MATLAB中字符串要用单引号来界定注:单引号必须是在英文状态下输入例:a='Hello'a=[a,'World']%字符串可以合并>>a=HelloWorld注意,字符串的每个字符,包括空格都看作响应矩阵的一个元素。>>size(a)ans=111许钢

2023/4/3Matlab语言及其在电子信息工程中的应用11第四讲MATLAB程序设计三、字符与字符串2、eval命令

eval命令是用来将字符变量转换为宏指令的,eval(t)表示运行包含在t里面的内容。t='magic(n)'n=input('请输入魔方矩阵的维数:n=')eval(t)许钢

2023/4/3Matlab语言及其在电子信息工程中的应用12第四讲MATLAB程序设计三、字符与字符串3、字符串操作函数(自行上机验证,略)isstr

判断是否字符串blanks 空字符deblank

移去空字符strcmp

比较字符串num2str 将数字变为字符串str2num 将字符串变为数字str2mat 将字符号串变为文本矩阵strrep

将一个字符串变为另一个字符串许钢

2023/4/3Matlab语言及其在电子信息工程中的应用13第四讲MATLAB程序设计四、函数的调用函数调用格式为:[输出参数1,输出参数2,…]=函数名(输入参数1,输入参数2,…)例1:

给定数a,b,和一个正整数n,对k=1,2,…,n,计算(1)先建立一个函数文件power_ab.mfunction[out1,out2]=power_ab(a,b,n)%power.m是计算(a+b)^n

和(a-b)^n的函数文件out1=(a+b)^n;out2=(a-b)^n;许钢

2023/4/3Matlab语言及其在电子信息工程中的应用14第四讲MATLAB程序设计四、函数的调用(2)再建立调用上述函数文件的命令文件diaoyongpower.m%diaoyongpower.ma=input('Pleaseinputa=:');b=input('Pleaseinputb=:');n=input('Pleaseinputn=:');addpow=zeros(1,n);subpow=zeros(1,n);%分配两个数组fork=1:n[addpow(k),subpow(k)]=power_ab(a,b,k);endaddpowsubpow许钢

2023/4/3Matlab语言及其在电子信息工程中的应用15第四讲MATLAB程序设计四、函数的调用例2:用递归调用形式计算n的阶乘functionf=factorial_n(n)%计算n!的函数文件ifn==1f=1;elsef=n*factorial_n(n-1);return;end许钢

2023/4/3Matlab语言及其在电子信息工程中的应用16第四讲MATLAB程序设计五、程序的优化1、循环的向量化尽可能使用向量或矩阵编程,而不是像在其它语言中对向量或矩阵的元素编程,这样不但可以使程序较短,而且大大提高执行的效率。例1:一般循环编程ticx=1;fork=1:1000

y(k)=log10(x);x=x+0.01;endtoc例2:向量化编程ticx=1:0.01:10;y=log10(x);toc比较这两个M文件的运行时间许钢

2023/4/3Matlab语言及其在电子信息工程中的应用17第四讲MATLAB程序设计五、程序的优化2、数组的预定义数组的预定义可以提高内存的利用率,不使用预定义,数组的多次扩维会增加内存的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论