版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 MatLab程序设计本章学习的主要目的:1. 熟炼掌握MatLab程序设计的顺序、分支和循环结构;2. 熟炼掌握脚本M文件和自定义函数的设计和使用;3.1 M文件的使用3.1.1 M文件的运行操作步骤 1启动MatLab 2 点击菜单File-New-M-file,进入文件编辑窗口 3 在文件编辑窗口输入M文件内容 4 以m为扩展名存盘,注意函数文件的文件名一定和函数名一样。 5 在命令窗口中输入脚本文件名,即可运行脚本M文件,函数文件的使用和内部函数的使用方法一样。3.1.2 变量 变量名是以字母开头,由字母、数字和下划线组成,最多31个字符,区分大小写字母。 注:变量不需要任何类型
2、的说明语句,当输入一个新的变量名时,MatLab会自动建立变量并为其分配内存空间。 MatLab有几个特殊的量: pi 圆周率 ;eps最小浮点数;Inf正无穷大,特指1/0;NaN不定值, 特指0/0; i,j 虚数单位。注 为了防止除以0的运算,可如下处理:如 x=(-3:3)/3;x=x+(x=0)*eps;sin(x)./x3.1.3语句形式 一般赋值语句形式: 变量表达式若变量和“=”省略,则名为ans的变量自动建立;若输入一个语句并以回车结束,则在工作区中显示计算的结果;若语句以“;”结束,则只计算,不显示计算的结果。若表达式太长,可以用续行号将其延续到下一行。一行中可以写几个语句
3、,它们之间用逗号或分号分开。语句注释符为%。3.1.4 控制循环语句1for 循环变量=初值:步长:终值 循环体语句组 end 例1 计算1到10的和脚本文件example1.m s=0; for i=1:10;s=s+i;end; s 在命令窗口输入example1,运行结果:S=55 2while(条件式) 循环体语句组 end 例2 Fibonacci数组的元素满足Fibonacci 规则: ,;且。求出该数组中第一个大于10000的元素。脚本文件 example2.ma(1)=1;a(2)=1;i=2;while a(i)=10000 a(i), break; end;end,i 在命
4、令窗口输入example3,运行结果:ans = 10946i = 21 2 switch-case结构switch 表达式case 表达式1 语句块1case 表达式2 语句块2otherwise语句块nend 例4 学生的成绩管理 脚本文件 example4.mmark=86;n=fix(mark/10);switch n case 10 Rank=满分 case 9 Rank= 优秀 case 8 Rank= 良好 case 6,7 Rank= 及格 otherwise Rank=不及格 end在命令窗口输入example4,运行结果:Rank = 良好3.1.6 自定义函数 funct
5、ion =() 说明:M-文件的文件名必须是.m。若有多个因变量用括起来。 例5 函数文件randint.mfunction a=randint(m,n) %产生mn随机整数矩阵 a=floor(10*rand(m,n); 使用方法:在工作区直接输入变量名=函数名(自变量组) 在命令窗口输入 x=randint(2,3)后运行结果:x = 9 6 8 2 4 7例6 ,求f(2),f(0.5),f(-1)先建立函数M文件fun.m定义函数f(x),再在MatLab命令窗口中输入fun(2),fun (0.5),fun (-1)。function f=fun(x)if x1 f=x.2+1els
6、e if x =0f=x.3elsef=2*xendend例7 求二元函数g(x,y)=4x+5y在(1,2)处的函数值。方法1 建立函数M文件fun1.m定义函数g(x,y),再在MatLab命令窗口中输入fun1(1,2) function z=fun1(x,y) %2个输入参数,z=4*x+5*y方法2 建立函数M文件fun2.m定义函数g(x,y),再在MatLab命令窗口中输入fun2(1,2) function z=fun1(x) 1个输入参数z=4*x(1)+5*x(2)3.1.7 程序流控制break 用于循环控制中,终止包含break语句的最内层的循环。return 使当前正
7、在运行的函数正常结束并返回调用它的函数继续运行,或返回到调用它的环境如命令窗口。error(错误信息)显示错误信息并终止当前函数的运行,并将控制返回到键盘。若错误信息是个空串,则error不起作用。3.2 上机实验内容1 已知函数,计算f(-0.5),f(0),f(1),并作出该函数的曲线图,说明x=1.5,x=0,x=1处的连续性和可导性。2 定义二元函数f(x,y)=x3-y3+3x2+3y2-9x,并在区域-4x2,-1yNew-M-file,打开M文件编辑窗口输入程序如下:function y=fun1(x)if (x=-1)&(x0) y=x+1;elseif x1 y=sin(x)
8、+1;elseif xSave,在默认路径下存盘,文件名为fun1.m(3)在MatLab命令窗口中,输入fun1(-0.5)得f(-0.5) fun1(0)得f(0) fun1(1)得f(1) (4) 在MatLab命令窗口中,输入plot(0,fun1(0),*,1,fun1(1),*,1.5,fun1(1.5),*) fplot(fun1,-1,2) 见图1由图像观察得各点的连续性和可导性:在=1.5处 在x=0处 在x=1处 图12 (1)在MatLab命令窗口中,点击菜单FileNew-M-file,打开M文件编辑窗口输入程序如下:function z=fun2(x)z=x(1).3
9、-x(2).3+3*x(1).2+3*x(2).2-9*x(1);end(2)在M文件编辑窗口中,点击FileSave,在默认路径下存盘,文件名为fun2.m(3)在MatLab命令窗口中,输入如下指令: fun2(1,0)得f(1,0)= ,fun2(1,2) 得f(1,2)= ,fun2(-3,0) 得f(-3,0)= , fun2(-3,2) 得f(-3,2)= ,hold offclfx=-4:0.1:2;y=-1:0.1:3; X,Y=meshgrid(x,y);Z=X.3-Y.3+3*X.2+3*Y.2-9*X;mesh(X,Y,Z) %见图2hold on图2plot3(1,0,
10、fun2(1,0),b*)在图形窗口用旋转工具,观察点(1,0)处取得极值的情况是 ,plot3(1,2,fun2(1,2),r*)在图形窗口用旋转工具,观察点(1,2)处取得极值的情况是 ,plot3(-3,0,fun2(-3,0),m*)在图形窗口用旋转工具,观察点(-3,0)处取得极值的情况是 ,plot3(-3,2,fun2(-3,2),y*)在图形窗口用旋转工具,观察点(-3,2)处取得极值的情况是 ,3(1) 在MatLab命令窗口中,点击菜单FileNew-M-file,打开M文件编辑窗口输入程序如下: data(1,:)=1:8;data(2,:)=8.25 10.3 6.68
11、 12.03 16.85 17.51 9.3 10.65;data(3,:)=15.00 16.25 9.9 18.25 20.80 24.15 15.50 18.25;data(4,:)=data(3,:)-data(2,:);for i=1:7 w=data(4,i); k=i; flag=0;for j=i+1:8 if wSave,在默认路径下存盘,文件名为fun3.m (3) 在命令窗口输入fun3 %把产品按利润排序,输出排序后的产品序号为: 4方法1(1)按“开始”“程序”“附件”“记事本”,打开“记事本”,输入学生成绩,成绩之间用空格或逗号隔开。保存在MatLab目录/work下,文件名为student.txt(2)在MatLab命令窗口中,点击菜单FileNew-M-file,打开M文件编辑窗口输入程序如下:load student.txt; 用文件的形式输入50个学生的成绩high_score=max(student)low_score=min(student)mean_score=mean(student)pass_no=length(s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钠离子纳米材料项目可行性研究报告
- 林下经济产业项目可行性研究报告
- 2026年广西制造工程职业技术学院单招职业适应性考试题库带答案详解(基础题)
- 2026年广东省阳江市单招职业适应性考试题库带答案详解(典型题)
- 2026年广东省阳江市单招职业适应性测试题库带答案详解(能力提升)
- 2026年常德科技职业技术学院单招职业适应性测试题库带答案详解(综合卷)
- 2026年山西省晋城市单招职业适应性测试题库完整答案详解
- 2026年山西省运城市单招职业倾向性考试题库含答案详解(综合卷)
- 2026年广东省惠州市单招职业适应性测试题库及答案详解(夺冠)
- 2026年广东轻工职业技术学院单招职业倾向性考试题库带答案详解(基础题)
- 外墙瓷砖维修方案
- 高等职业学校汽车智能技术专业实训教学条件建设标准
- 钢构厂房施工合同范本(2024版)
- 夜间施工安全培训
- 《论语》全文原文版
- TB 10752-2018 高速铁路桥涵工程施工质量验收标准
- 盐城工业职业技术学院单招职业技能测试参考试题库(含答案)
- 《人体中的化学反应》课件
- (沪教牛津版)深圳市小学1-6年级英语单词默写表(英文+中文+默写)
- 游泳救生员培训课件
- 2023学年完整公开课版《字母表》教学
评论
0/150
提交评论