第三章Matlab程序设计1
更新时间:2023-10-27 19:52:01 阅读量: 综合文库 文档下载
课程名称:Matlab应用
教 材:Matlab应用与实验教程
讲 授 人: 专业技术职务:讲师 学 历: 研究生 学 位:硕士 讲授题目:Matlab程序设计
所属章节:第三章 计划学时:4学时 教学目的和要求:
用交互式的方式来编写程序适用于命令行比较简单,输入比较方便,同时处理的问题步骤比较少的情况。当需要处理重复、较复杂的且容易出错的问题时,可以进行控制流量的程序设计,这就是M文件的编程方式。 教学重点:
1、 Matlab的控制流量语言 2、 变量和函数的种类 3、 了解程序的调试和优化 教学难点: 1、 M文件
2、 变量和函数的种类 3、 程序设计的复制函数 教学方法:
讲授、演示
使用教具: 多媒体课件
思 考 题:
1、命令文件与函数文件的主要区别是什么?
(1)命令文件是一系列命令的组合,函数文件的第一行必须用function说明;
(2)命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;
(3)命令文件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量。
2、编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。
function c=collatz(n) % collatz
% Classic “3n+1” Ploblem from number theory c=n;
while n>1
if rem(n,2)==0 n=n/2; else
n=3*n+1; end c=[c n]; end
参考资料:
【1】 Matlab Programming for Engineers.(Second Edition).Stephen
J.Champan
【2】 精通Matlab 7王正林.刘明编著.电子工业出版社
第3章Matlab程序设计
Matlab命令的执行方式
1、 交互式命令执行方式(命令窗口)逐条输入,逐条执行,操作简单、直
观,但速度慢,执行过程不能保留。
2、 M文件的程序执行方式将命令编成程序存储在一个文件中(M文件),依
次运行文件中的命令,可以重复进行。
3、 Matlab程序设计有传统高级语言的特征,又有自己独特的特点,可以利用
数据结构的特点,使程序结构简单,编程效率高。
3.1 M文件的分类
用Matlab语言编写的程序,称为M文件。是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。M文件根据调用方式的不同分为两类: 命令文件(Script File),函数文件(Function File),它们的扩展名都是.m
例3.1 建立文件将变量a、b的值互换。 命令文件: clear; a = 1:10;
b = [11,12,13,14;15,16,17,18]; c = a; a = b; b = c; a b
将文件保存为exch,并在命令窗口执行。 执行结果: a =
11 12 13 14 15 16 17 18 b =
1 2 3 4 5 6 7 8 9 10 函数文件 fexch.m
function [a,b] = exch(a,b) c = a; a = b; b = c;
然后在命令窗口调用该函数文件: clear; x = 1:10;
y = [11,12,13,14;15,16,17,18]; [x,y] = fexch(x,y) 输出结果为: a =
11 12 13 14 15 16 17 18 b =
1 2 3 4 5 6 7 8 9 10 函数参数a,b,c未保留在工作空间中,x,y保留在工作空间中。
3.2 程序控制结构 3.2.1 顺序结构 1、数据的输入
从键盘输入数据,则可以使用input函数来进行, 调用格式为:
A = input(提示信息,选项);
例如:从键盘输入A矩阵,可以采用下面的命令来完成 A = input(?输入A矩阵?);
如果在input函数调用时采用?s?选项,则允许用户输入一个字符串。 例:xm = input(?What??s your name??,?s?);
2、数据的输出
命令窗口输出函数主要有disp函数,其调用格式为: disp(输出项)
其中输出项既可以为字符串,也可以为矩阵。例如: A = ?Hello, Tom?; disp(A)
输出为:Hello, Tom
又如:A = [1,2,3;4,5,6;7,8,9]; disp(A) 输出为:
1 2 3 4 5 6
7 8 9 %disp函数输出格式更紧凑 2例3.2 求一元二次方程 的根。 程序如下: a = input('a=?'); b = input('b=?'); c = input('c=?'); d = b*b-4*a*c;
x = [(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];
disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]); 程序输出为: a=?4 b=?78 c=?54
x1=-0.7188,x2=-18.7812 3、程序的暂停
程序执行过程中暂停,可用pause函数,其调用格式为: pause(延迟描述)
如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。
若要强行中止程序的运行可按Ctrl+C键。
3.2.2 选择结构
选择结构是根据给定的条件成立或不成立,分别执行不同的语句。 Matlab用于实现选择结构的语句有if语句,switch语句和try语句。 1. if语句
在Matlab中,if语句有3种格式。 (1)单分支if语句 语句格式: if 条件 语句组 end
(2)双分支if语句 语句格式: if 条件
语句组 1 else
语句组 2 end
当条件成立时,执行语句组1,否则执行语句组2,然后再执行if语句的后续语句。
例3.3 计算分段函数:
ax?bx?c?0
2? cos(x?1)?x?1,x?10? y??
??xx?x,x?10
也可以用单分支if语句来实现:
x = input('请输入x的值: '); 程序如下:
y = cos(x+1)+sqrt(x*x+1); x = input(‘请输入x的值:');
if x~=10 if x == 10
y = x*sqrt(x+sqrt(x)); y = cos(x+1)+sqrt(x*x+1);
end else
y y = x*sqrt(x+sqrt(x));
end y
(3)多分支if语句 语句格式: if 条件1 语句组 1 elseif 条件2 语句组 2 …
elseif 条件m 语句组 m else
语句组n end
例3.4 大小写字母的置换
输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。 程序如下:
c = input(?请输入一个字符?,?s?); if c >=?A? & c<=?Z?
disp(setstr(abs(c) + abs(?a?)-abs(?A?))); elseif c>=?a? & c<=?z?
disp(setstr(abs(c)- abs(?a?) + abs(?A?))); elseif c>=?0? & c<=?9? disp(abs(c)-abs(?0?)); else
disp(c); end
3.2.2 选择结构 2、switch语句
switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式: switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 …
case 表达式m 语句组m otherwise
语句组 n
正在阅读:
第三章Matlab程序设计110-27
品牌展会成功的重要因素研究分析06-14
面点师结业考:面点试题10-01
2009年高考数学复习资料—函数、导数部分错题精选01-26
Computer English Unit 9 The Internet(计算机英语 第九单元 因04-12
化学经典教材列举06-20
我家的大母鸡作文350字06-19
实用写作网上作业参考答案10-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 第三章
- Matlab
- 作文指导课教学案- - 细节描写
- 小学四年级数学上册亿以内数的读写专项练习题(125)
- 2016年度山东省煤炭工业科学技术奖获奖等级名单
- 人教版 高中数学(选修2-3) 第二章 随机变量及其分布单元测试题
- 记叙文阅读训练一:概括内容--梳理情节
- 浙江省临海市灵江中学2012届九年级语文下学期第二次统考试题
- 重金属测定方法
- 中国石油大学(北京)15秋《大学英语(二)》第二阶段在线作业100分答案
- 跨文化交际答案1
- 新余县地名志—北岗公社概况
- 中国膨化食品市场竞争调研与发展规划分析报告(2013-2017)
- 统计学本科毕业论文2改 - 基于spss的多元回归分析模型选取的应用殷婷 - 图文
- 蜜蜂(中蜂)养殖技术
- 常微分方程复习题目
- 中医科护理常规
- 数控加工工艺与编程(程俊兰)第3章 习题答案
- 2010和2011年计算机c程序设计真题及答案
- 《学前儿童保健学》模拟试卷及答案
- 宣化上人佛经讲解 - 佛说四十二章经浅释
- 第20课《一幅名扬中外的画》同步练习