欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    MatLab3.docx

    • 资源ID:2463931       资源大小:116.94KB        全文页数:17页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MatLab3.docx

    1、MatLab3第三讲 MatLab程序设计一、 M文件我们前面所介绍在MATLAB所做的运算,是适合于所要计算的算式不太长或是想以交谈式方式做运算,如果要计算的算式很长有数十行或是须要一再执行的算式,则那样的方式就行不通了。MATLAB提供了所谓的 M-file 的方式,可让使用者自行将指令及算式写成巨集程式然后储存成一个特别的文档,其扩展名是m,譬如 picture.m,其中的picture就是文件名称。(1)编写M脚本文件的步骤 点击MATLAB指令窗工具条上的New File图标,就可打开如图所示的MATLAB文件编辑调试器。用户即可在空白窗口中编写程序。输入如下一段程序 (pictur

    2、e.m)x=linspace(0,2*pi,20); y=sin(x); plot(x,y,r+) title(2D plot) 点击编辑调试器工具条图标,在弹出的Windows标准风格的“保存为”对话框中,选择保存文件夹,键入新编文件名(如picture),点击【保存】键,就完成了文件保存。(2)运行文件 使picture.m所在目录成为当前目录(系统默认路径),或让该目录处在MATLAB的搜索路径上. 然后在指令窗口运行以下指令,便可得到图形。picture 再来看另一个 M-file: area.m 的例子 % 新建M-file, area.m % 计算一个球的体积 r = input(

    3、Type radius 输入半径:); Area=pi*r2; volume=(4/3)*pi*r3; fprintf(半径 The radius is %12.5fn,r) fprintf(面积 The area of a circle is %12.5fn,Area) fprintf(体积 The volume of a sphere is %12.5fn,volume)在指令窗口运行指令 area二、 M文件函数一个函数M文件与脚本文件类似之处在于它们都是一个有.m 扩展名的文本文件。如同脚本M文件一样,函数M文件不进入命令窗口,而是由文本编辑器所创建的外部文本文件。一个函数的M文件与脚

    4、本文件在通信方面是不同的。函数与MATLAB工作空间之间的通信,只通过传递给它的变量和通过它所创建的输出变量。在函数内中间变量不出现在MATLAB工作空间,或与MATLAB工作空间不交互。一个函数的M文件的第一行把M文件定义为一个函数,并指定它的名字。它与文件名相同,但没有.m 扩展名。它也定义了它的输入和输出变量。M文件函数之间可以互相调用.M文件函数必须遵循以下特定的规则。 1. 函数名和文件名必须相同。例如,函数fliplr 存储在名为fliplr.m 文件中。 2. MATLAB头一次执行一个M文件函数时,它打开相应的文本文件并将命令编辑成存储器的内部表示,以加速执行以后所有的调用。如

    5、果函数包含了对其它M文件函数的引用,它们也同样被编译到存储器。普通的脚本M文件不被编译,即使它们是从函数M文件内调用;打开脚本M文件,调用一次就逐行进行注释。 3. 在函数M文件中,到第一个非注释行为止的注释行是帮助文本。当需要帮助时,返回该文本。例如, help fliplr返回上述前八行注释。 4. 第一行帮助行,名为H1 行,是由lookfor 命令搜索的行。 5. 函数可以有零个或更多个输入参量。函数可以有零个或更多个输出参量。 6. 函数可以按少于函数M文件中所规定的输入和输出变量进行调用,但不能用多于函数M文件中所规定的输入和输出变量数目。如果输入和输出变量数目多于函数M文件中fu

    6、nction 语句一开始所规定的数目,则调用时自动返回一个错误。 7. 当函数有一个以上输出变量时,输出变量包含在括号内。例如,V,D = eig(A)。不要把这个句法与等号右边的V,D 相混淆。右边的V,D 是由数组V和D 所组成。 8. 当调用一个函数时,所用的输入和输出的参量的数目,在函数内是规定好的。函数工作空间变量nargin 包含输入参量个数;函数工作空间变量nargout 包含输出参量个数。事实上,这些变量常用来设置缺省输入变量,并决定用户所希望的输出变量。例: ,计算f(1)f(2)+f2(3)首先建立一个M函数:fun1.mfunction Y= fun1(x)Y=(x3 -

    7、 2*x2 + x - 6.3)/(x2 + 0.05*x - 3.14);在指令窗口运行以下指令:fun1(1)*fun1(2)+fun1(3)*fun1(3)ans = -12.6023例:计算阶层函数 fact.mfunction output = fact(n) if n = 1 output = 1; return; end output = n*fact(n-1); 【例】M函数文件示例。circle.mfunction sa = circle(r,s)%CIRCLE plot a circle of radii r in the line specified by s.% r 指

    8、定半径的数值% s 指定线色的字符串% sa 圆面积% circle(r) 利用蓝实线画半径为 r 的圆周线.% circle(r,s) 利用串 s 指定的线色画半径为 r 的圆周线.% sa=circle(r) 计算圆面积,并画半径为 r 的蓝色圆面.% sa=circle(r,s) 计算圆面积,并画半径为 r 的 s 色圆面.if nargin2 error(输入宗量太多。);end;if nargin=1 s=b;end;clf;t=0:pi/100:2*pi;x=r*exp(i*t);if nargout=0 plot(x,s);else sa=pi*r*r; fill(real(x)

    9、,imag(x),s)endaxis(square)三 MATLAB控制流for循环结构For循环允许一组命令以固定的和预定的次数重复。For循环的一般形式是: for x = array commands end在for和end语句之间的commands按数组中的每一列执行一次。【例】 for n=1:10 x(n)=sin(n*pi/10); end x x = Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878 0.3090 0.0000 For循

    10、环可按需要嵌套。n=0:1:10;for i=1:11for j=1:11y(i)=sin(n(i);n(j)=n(j)*10;endendy = Columns 1 through 7 0 -0.5064 0.9300 -0.8027 -0.1425 -0.9765 -0.5118 Columns 8 through 11 0.8586 -0.9957 0.9917 0.9287n = 1.0e+012 * Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 11 0.7000 0

    11、.8000 0.9000 1.0000可以利用break命令跳出for循环【例】一个简单的for循环示例。for i=1:10; %i依次取1,2,10,.x(i)=i; %对每个i值,重复执行由该指令构成的循环体,end; x %要求显示运行后数组x的值。 x = 1 2 3 4 5 6 7 8 9 10 while循环结构与For循环以固定次数求一组命令的值相反,While 循环以不定的次数求一组语句的值。While循环的一般形式是: while expression commands end只要在表达式里的所有元素为真,就执行while和end 语句之间的commands。【例】 num

    12、=0;EPS=1; while (1+EPS)1 EPS=EPS/2; num=num+1; end num num = 53 EPS=2*EPS EPS = 2.2204e-016【例】x = zeros(1,6); % x是一个的零矩阵 i = 1; while i = 6, x(i) = 1/i; i = i+1; end xx =1.0000 0.5000 0.3333 0.2500 0.2000 0.1667可以利用break命令跳出while循环while循环可按需要嵌套。【例】Fibonacci数组的元素满足Fibonacci 规则: ,;且。现要求该数组中第一个大于10000的

    13、元素。a(1)=1;a(2)=1;i=2;while a(i)5 cost=(1-20/100)*cost; end cost cost = 200假如有两个选择,If-Else-End结构是: if expression commands evaluated if True else commands evaluated if False end在这里,如果表达式为真,则执行第一组命令;如果表达式是假,则执行第二组命令。 当有三个或更多的选择时,If-Else-End结构采用形式 if expression1 commands evaluated if expression1 is True

    14、 elseif expression2 commands evaluated if expression2 is True elseif expression3 commands evaluated if expression3 is True elseif expression4 commands evaluated if expression4 is True elseif else commands evaluated if no other expression is True end 最后的这种形式,只和所碰到的、与第一个真值表达式相关的命令被执行;接下来的关系表达式不检验,跳过其余

    15、的If-Else-End结构。而且,最后的else命令可有可无。【例】if rand(1)0.5disp(i love you)elsedisp(i donot love you)end【例】一个简单的分支结构。cost=10;number=12;if number8 sums=number*0.95*cost;end,sums sums = 114.0000 【例】用for循环指令来寻求Fibonacc数组中第一个大于10000的元素。n=100;a=ones(1,n);for i=3:n a(i)=a(i-1)+a(i-2); if a(i)=10000 a(i), break; %跳出所

    16、在的一级循环。 end;end,i ans = 10946i =21 switch-case结构【例】学生的成绩管理,用来演示switch结构的应用。%划分区域:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(1 z(i,j)=0.5457*exp(-0.75*y(i)2-3.75*x(j)2-1.5*x(j); elseif x(j)+y(i)=-1 z(i,j)=0.5457*exp(-0.75*y(i)2-3.75*x(j)2+1.5*x(j); else z(i,j)=0.7575*exp(-y(i)2-6.*x(j)2); end endendax

    17、is(-a,a,-b,b,min(min(z),max(max(z);colormap(flipud(winter);surf(x,y,z);MATLAB的输入与输出语句 输入语句 o 输入数值 x=input(please input a number:)please input a number:22x = 22o 输入字符串 x=input(please input a string:,s)please input a string:this is a string x = this is a string 输出语句 o 输出显示命令 自由格式 (disp) disp(23+454-29

    18、*4) 361disp(11 22 33; 44 55 66; 77 88 99) 11 22 3344 55 66 77 88 99disp(this is a string) this is a string 格式化输出 (fprintf)。 fprintf(The area is %8.5fn, area) % 注意输出格式前须有%符号,%跳行符号须有符号 The area is 12.56637 % 输出值为8位数含5位小数 在这里你如果学过c语言就能很好的理解了。o 错误消息显示命令 error(this is an error) ? this is an error关系操作符说明小于大于 =大于或等于= =等于 =不等于逻辑操作符说明&与|或非


    注意事项

    本文(MatLab3.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开