Matlab基础程序设计(第二次课)
第 1 章 matlab基础第二次课

20
1.7.3 矩阵的拆分
序号(Index)与下标(Subscript)是一一对应的, 以m × n矩阵A为例,矩阵元素A(i, j)的序号为 (j−1)*m + i。其相互转换关系也可利用sub2ind和 ind2sub函数求得。 例如:sub2ind(size(A),1,3) ans = 5 size(A)函数返回包含两个元素的向量,分别是矩阵A 的行数和列数 ,即A是2行3列的矩阵,其中第1行第3列元 素的序号为5。
1.1623 1.1475 1.6461 +
1.7.4 算术运算
(4)矩阵的指数和对数 矩阵的指数运算用函数expm实现,对数运算用函数logm实现。 例如:
>> a=[1 3 4;2 6 5;3 2 4]; >> d=expm(a) d= 1.0e+004 * 0.4668 0.7694 0.9200 0.7919 1.3065 1.5613 0.4807 0.7919 0.9475 >> e=logm(a) e= 0.5002 + 2.4406i 0.5960 - 0.6800i 0.7881 - 1.2493i 0.4148 + 0.4498i 1.4660 - 0.1253i 1.0108 - 0.2302i 0.5780 - 1.6143i 0.4148 + 0.4498i 1.0783 + 0.8263i
1.7.4 算术运算
(3)矩阵除法
在MATLAB中,有两种矩阵除法运算:\和/,分 别表示左除和右除。如果A矩阵是非奇异方阵, 则A\B和B/A运算可以实现。A\B等效于A的逆左乘
matlab使用教程2-2

第2章 Matlab语言程序设计 章 语言程序设计
写二进制文件: 用fwrite写二进制文件: 写二进制文件 COUNT=fwrite(Fid, A, precision) 例: Fid=fopen(‘test.dat’, ‘w’); cnt=fwrite(Fid, A, ‘float’) fclose(Fid); 读取ASCII数据文件: 数据文件: 用fscanf读取 读取 数据文件 [A, COUNT]=fscanf(Fid, format, size) format用以控制读取的数据格式,由%加上格式符组成, 用以控制读取的数据格式, 加上格式符组成, 用以控制读取的数据格式 常见的格式符有: 常见的格式符有:d, i, o,u, x, e, f, s, c。 。 例:fscanf(Fid, ‘%s’); fscant(Fid, ‘%6.2f’); fscanf(Fid, “%5d’);
第2章 Matlab语言程序设计 章 语言程序设计
d) 其它与流程控制有关的语句
if
if
break语句循环结构 语句循环结构 语句
continue 语句循环结构 语句循环结构
第2章 Matlab语言程序设计 章 语言程序设计
pause 指令使程序运行停止,等待用户按任意键继续; 指令使程序运行停止 等待用户按任意键继续; 使程序运行停止, input 指令提示用户从键盘输入数值、字符串或表达 指令提示用户从键盘输入数值 提示用户从键盘输入数值、 并接受输入; 式,并接受输入; disp指令在屏幕上显示字符串; 指令在屏幕上显示字符串 指令在屏幕上显示字符串 echo on指令显示其后所有执行文件的指令; 指令显示其后所有执行文件的指令 指令显示其后所有执行文件的指令; echo off指令关闭其后所有执行文件的指令显示。 指令关闭其后所有执行文件的指令显示 指令关闭其后所有执行文件的指令显示。
matlab第二次课 ( 1 )

2.1 信号的表示与运算
矩阵的创建与修改
•
用load函数装载矩阵
如 load sn.txt load a.mat
sn.txt a.mat为已建立的2个文件
2.1 信号的表示与运算
矩阵的创建与修改
直接修改
可用键找到所要修改的矩阵,用键移 动到要修改的矩阵元素上即可修改。 指令修改 可以用A(,)= 来修改。
plot的调用格式
2.2 matlab 绘图之二维绘图
S的标准设定值 字母 y m c r g b w k 颜色 黄色 粉红 亮蓝 大红 绿色 蓝色 白色 黑色 标点 · ○ × + - : -· (--) 线型 点线 圈线 ×线 +字线 实线 星形线 虚线 点划线
2.2 matlab 绘图之二维绘图 plot的特点
信号自变量t的常用2种生成方法 t=linspace(t1,t2,N);
在区间[t1,t2]s上均匀产生N个时间样点值。
t= t1:1/fs:t2
在区间[t1,t2]s上以采样率f信号的生成 例: 生成在[0,10]s上长度为30的单位阶跃信号, 并作图表示。 t=linspace(0,10,30); y=ones(1,30); Stem(t,y)
信号的生成
1
0.5
0
生成周期三角波
-0.5
sawtooth(T):对时间向量T产生周期三角波
sawtooth(T,WIDTH):WIDTH为(0,1)的偏离系数
0 0.05
-1
0.1
0.15
0.2
在(0,1.5)上生成频率 为50HZ的三角波信号,
1
0.5
采样率为10KHZ.
0
t=0:0.0001:1.5;
Matlab工程应用基础_2_2Matlab语言程序设计

1、 Matlab数据类型 变量和常量 数字变量的格式 字符串 单元型变量 结构型变量 矩阵、向量 多项式
a) 变量和常量 变量(包括函数)的命名规则:由英文字母、数字和下划线 混合组成,不得包含空格和标点 ;第一个字符必须是英 文字母,最多包括31个字符; 对字母的大小写敏感。 局部变量和全局变量 永久变量(常量) 只能在某一函数体内使用,而不能从其他函数和 Matlab 工作空间访问的变量,就是局部变量。 在几个函数及M atlab函数中都能使用的变量就是全局变 量。 (全局变量名应尽可能大写,并由globe声明)
第2章 Matlab语言程序设计
关系操作符
逻辑操作符
第2章 Matlab语言程序设计
MATLAB 的关系操作符运算法则: 当两个变量是标量 a 和 b 时 ◆若 a、b 之间关系成立,则关系运算结果为 1; ◆若 a、b 之间关系不成立,则关系运算结果为 0; 当两个维数相同的矩阵 A 和 B 比较时,矩阵 A、B 比 较的是相同位置的元素,按标量的运算规则逐个进行。 关系运算的结果是一个和 A维数相同的矩阵,它的元 素由 0 和 1 组成。 当一个矩阵A 和一个标量 b 比较时,把标量 b 和矩阵 A 的每一个元素按标量关系运算规则逐个比较。关系 运算的结果是一个和数组 A维数相同的矩阵,它是由 0 和 1 组成。 优先级 由高到低为算术运算、关系运算和逻辑运算。
ans = -0.9918 >> y=sin(5*t+6) y= -0.9918
第2章 Matlab语言程序设计
表达式由变量名、运算符、数字和函数名组成。 表达式将按常规的优先纽从左至右执行运算; 优先级的规定是指数运算级别最高,乘除运算次之; 括号可以改变运算顺序; 书写表达式时,赋值符“=”和运算符两侧允许有 空格,以增加可读性。但在复数或符号表达式中要 尽量避免空格,以防出错; 表达式的末尾加 “;” 时,Matlab系统只把数值赋 给变量, 不显示计算结果;不加“;”时, Matlab 系统将会在该条语句的下面直接显示运算结果。
实验项目1 MATLAB熟悉使用及编程基础2

实验项目1 MATLAB熟悉使用及编程基础MATLAB是美国Mathworks公司推出的一套高件能的数值分析和计算软件,它将矩阵运算、数值分析、图形处理、编程处术结合在一起,为用户提供了一个强有力的科学及工程问题分析计算和程序设计的工具。
MATLAB本身也在不断改进和创新,特别是2000年以出的版本6,无论在界面设计、计算方法、编程阶段和工具等方面都有了巨大的突破,全面引入了面向对象编程的概念和方法,使MATLAB真正成为了具有全部高级语言功能和特征的新一代软件开发平台。
MATLAB开发环境是一组工具和组件的集成,这些工具是图形化的用户接口,它们包括 MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口以及帮助信信息、工作空间、文件和搜索路径等浏览器。
MATLAB集成了丰富的数学函数库,其强大的计算能力覆盖了从基本函数(如求和、正弦、余弦和复数运算等)到特殊函数(如矩阵求逆、矩阵特征值、贝塞尔函数和快速傅里叶变换等)的范围。
MATLAB语言是一种高级编程语言,包括控制流的描述、函数、数据结构、输入输出及面对对象编程,既可以编制适用于快速使用的小程序,也可以编制大型复杂的应用程序。
MATLAB提供了功能强大的图形系统,既可以完成二维和三维数据的可视化、图像处理、动画和图形表达等功能,也可以定制图形的外观,如建立一个完整的图形用户界由的应用程序。
1.实验目的:掌握MA TLAB编程语言和偏微分方程PDE工具箱对电磁场的基本问题进行仿真;2 实验内容:1、MATLAB启动MA TLAB安装到硬盘后,启动方法有:(1)点击Windows桌面上自动生成的快捷方式图标;(2)点击matlab 6\文件夹下快捷方式图标令MATLAB(3)点击matlab/bin/win32文件夹中的Matlab.exe2、m文件编写熟悉基本指令、基本数学运算,借助help、lookfor等命令实现在线帮助。
建立M文件的一般步骤如下:(1)打开文件编辑器:指的是MA TLAB内部编辑/调试器,可以有几种不同的方法打开文件编辑器,最简单的方法是在操作桌面助工具栏上选择蹦(建立新文件)或选择瞪(打开已有的文件),也可以在命令窗口输入命令edit建立新文件或输入命令edit filename,打开名为fi1ename的M文件。
第2章__MATLAB程序设计PPT课件

例2-6 某商场对顾客所购买的商品实行打折 销售,标准如下(商品价格用price来表示):
price<200 没有折扣 200≤price<500 3%折扣 500≤price<1000 5%折扣 1000≤price<2500 8%折扣 2500≤price<5000 10%折扣 5000≤price 14%折扣 输入所售商品的价格,求其实际销售价格。
for m=100:999
m1=fix(m/100);
%求m的百位数字
m2=rem(fix(m/10),10); %求m的十位数字
m3=rem(m,10);
%求m的个位数字
if m==m1*m1*m1+m2*m2*m2+m3*m3*m3
disp(m)
end
end
153 370 371 407
例2-9 已知 y=1+1/3+1/5+…,当n=10000时, 求y的值。 y=0; n=10000; for i=1:n y=y+1/(2*i-1); end y
2.3 程序控制结构
2.3.1 顺序结构 1.数据的输入 从键盘输入数据,则可以使用input函数来进 行,该函数的调用格式为:
A=input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户 输入什么样的数据。
如果在input函数调用时采用's'选项,则允许 用户输入一个字符串。例如,想输入一个人 的姓名,可采用命令:
2.3.3 循环结构
1.for语句 for语句的格式为: for 循环变量=表达式1:表达式2:表达式3
循环体语句
end 表达式1:循环变量初值 表达式2:步长,为1时,表达式2可以省略。 表达式3:循环变量终值
MATLAB编程及应用 李辉 PPT课件 第2章 MATLAB基本计算和基础知识

2.2.2 系统预定义变量
MATLAB系统提供了一些用户不能清除的特殊变量,
即系统预定义变量。
MATALB系统预定义变量及其含义
预定义变量名
含义
ans pi eps nan或NAN inf i或j
运算结果默认变量名 圆周率 浮点数的精度,也是系统运算时确定的极小值 非数,如0/0 无穷大,如1/0 虚数标志,i=j=sqrt(-1)
1.0000 + 2.0000i >> b=3+4*j b=
3.0000 + 4.0000i
2.3.2 逻辑类型
MATLAB本身并没有专门提供逻辑类型,而借用整型来描
述逻辑类型数据。MATLAB规定,逻辑数据真(true)为1、
逻辑数据假(false)为0。
>> 2<3 ans =
logical 1 >> 2>3 ans = logical 0
>> sin(pi/3) ans =
0.8660
➢ 复数的计算:MATLAB还具有超越计算器的功能, 它认识复数,能够进行复数的计算。
>> (2+3i)+(4+5i) ans =
6.0000 + 8.0000i
Байду номын сангаас
2.2 变量
变量是指在程序执行过程中其值可以变化的量。
变量
用户自定义变量 系统预定义变量
2.3 数据类型
MATLAB数据类型
数值类型 逻辑类型 字符串类型 单元类型 结构类型
2.3.1 数值类型
数值类型分类方法
根据数据存 储空间和方 式分类
根据数据结 构分类
实验二MATLAB程序设计含实验报告

实验二 MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。
2.掌握利用switch 语句实现多分支选择结构的方法。
3.掌握利用for 语句实现循环结构的方法。
4.掌握利用while 语句实现循环结构的方法。
5.掌握MATLAB 函数的编写及调试方法。
二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。
M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。
点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。
并输入几组典型值加以检验。
(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。
其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:(1)用switch 语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。
请为关键的Matlab 语句填写上相关注释,说明其含义或功能。
《MATLAB程序设计教程(第二版)》第2章 MATLAB矩阵及其运算

显然,linspace(a,b,n)与a:(b-a)/(n-1)可由方括号中的小矩阵或向量建立起来。
2.2.2 矩阵的拆分
1.矩阵元素的引用方式
通过下标引用矩阵的元素,例如 A(3,2)=200 采用矩阵元素的序号来引用矩阵元素。矩阵元素 的序号就是相应元素在内存中的排列顺序。在
2.利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩 阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第
j列的元素。
A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素; A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素, A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在 第k~k+m列中的所有元素。
辑器可以直接观察变量中的具体元素,也可修改
变量中的具体元素。
clear命令用于删除MATLAB工作空间中的变量。
who和whos这两个命令用于显示在MATLAB工作 空间中已经驻留的变量名清单。who命令只显示
出驻留变量的名称,whos在给出变量名的同时,
还给出它们的大小、所占字节数及数据类型等信 息。
MATLAB中,矩阵元素按列存储,先第一列,再
第二列,依次类推。
例如
A=[1,2,3;4,5,6];
A(3) ans = 2 显然,序号(Index)与下标(Subscript )是一一对应的,
以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j1)*m+i。其相互转换关系也可利用sub2ind和 ind2sub函数求得。
x,y必须为相同大小的实矩阵或为标量。
2.1.5 数据的输出格式
第2章 MATLAB语言程序设计实例解析

【例2-6】switch语句实例 (原题见书本【例2-40】)。
• • • • • • • • • • • • • • • • • 解:首先我们要提取出开关表达式,这里若直接选用price作为开关表达式,则表达式i 则不好表示,因为price的取值理论上是无穷的,考虑到将price化为整数,这样图2-9中 的表达式i也就不难表示了。下面给出具体的程序: price=input('请输入商品价格:'); switch fix(price) case num2cell(0:199) % 价格小于200 rate=0; case num2cell(200:499) % 价格大于等于200但小于500 rate=3/100; case num2cell(500:999) % 价格大于等于500但小于1000 rate=5/100; case num2cell(1000:2499) % 价格大于等于1000但小于2500 rate=8/100; case num2cell(2500:4999) % 价格大于等于2500但小于5000 rate=10/100; otherwise % 价格大于等于5000 运行结果: rate=14/100; 请输入商品价格:1225 end sale_price =1127 sale_price=price*(1-rate) % 输出商品实际销售价格
【例2-1】隐函数的求导。
• 对于隐函数求偏导问题时,diff()函数并不能直接用于求解。考虑到隐 函数偏导数求解的一般方法:假设隐函数的数学表达式为
f ( x1 , x2 ,L , xn ) = 0
• 则可以通过隐函数求出自变量之间的偏导数。具体可以用下面的公式
∂xi • 求出 : ∂x j
∂ f ( x1 , x2 ,L , xn ) ∂x ∂xi =− j ∂ ∂x j f ( x1 , x2 ,L , xn ) ∂xi
MATLAB第二次

5 矩阵的转置
运算符: ‘ 运算规则: (1)若矩阵A的元素为实数、则A’返回A的转置; (2)若矩阵A为复数矩阵,则A’中的元素由A对应 元素的共轭复数构成。
例:A=[1 0 3; 4 13 6;7 4 9]; B=[1 2 3; 4 5 6;7 8 9+9i] 求:X1=A’ X2=B’
函数调用格式
(1) zeros (n): 生成 n×n阶0矩阵。 (2) zeros (m,n): 生成 m×n阶0矩阵。 (3) zeros (size (a)): 生成与a阶数相同的0矩阵。 (4) eye (n):生成 n阶单位矩阵。 (5) eye (m,n):生成 m×n阶单位矩阵。 (6) eye (size (a)):生成与a阶数相同的单位矩阵。 (7) ones (n):生成 n阶全1矩阵。 (8) ones (m,n):生成 m×n阶全1矩阵。 (9) ones (size (a)):生成与a阶数相同的全1矩阵。 (10) rand (n):生成 n×n阶随机矩阵,其元素值在0和1之间。 (11) rand (m,n):生成 m×n阶随机矩阵。 (12) rand:生成一个随机数。 (13) rand (size (a)):生成与a阶数相同的随机矩阵。
MATLAB 语言与应用
主讲:冯栋彦 机械学院412
第二次 MATLAB 数值计算
教学目标:
1 矩阵的定义与建立
2 矩阵运算 3 多项式运算
一、矩阵创建 1 矩阵是线性代数的基本运算单元。 2 矩阵含有M行N列数值。 3 矩阵中的元素可以是实数或复数。 4 矩阵相关的基本运算:加,减,内积, 逆矩阵,转置,线性方程式,特征值, 特征向量,矩阵分解。
matlab程序设计教程第二版

matlab程序设计教程第二版MATLAB程序设计教程第二版第一章:MATLAB概述MATLAB是一个高性能的数值计算和可视化软件,广泛应用于工程计算、数据分析、算法开发等领域。
它以其强大的数学函数库、易于使用的编程环境以及丰富的图形用户界面而闻名。
1.1 MATLAB的发展历程MATLAB最初由Cleve Moler于1970年代末开发,随着时间的发展,MATLAB不断更新,增加了更多的功能和工具箱。
1.2 MATLAB的特点- 交互式命令窗口:允许用户直接输入表达式并获取结果。
- 矩阵运算:MATLAB的核心是矩阵运算,它提供了丰富的矩阵操作函数。
- 图形用户界面:MATLAB提供了多种图形绘制工具,可以轻松地创建图表和动画。
- 编程语言:MATLAB具有自己的编程语言,支持函数、循环、条件语句等。
1.3 MATLAB的安装与配置详细说明如何下载、安装MATLAB,并进行基本的配置,以确保软件能够正常运行。
第二章:MATLAB基础2.1 MATLAB界面介绍介绍MATLAB的主界面,包括命令窗口、工作空间、命令历史、当前目录等。
2.2 基本命令与操作讲解MATLAB中的基本命令,如变量赋值、矩阵创建、基本运算等。
2.3 编程基础介绍MATLAB的编程结构,包括循环、条件语句、函数定义等。
第三章:矩阵与数组操作3.1 矩阵的创建与基本操作讲解如何创建矩阵、矩阵的基本运算,如加法、乘法、转置等。
3.2 特殊矩阵介绍MATLAB中的特殊矩阵,如单位矩阵、零矩阵、对角矩阵等。
3.3 矩阵的索引与切片详细说明如何对矩阵进行索引,以及如何进行矩阵的切片操作。
第四章:MATLAB编程进阶4.1 函数与脚本讲解如何编写自定义函数,以及如何使用脚本进行程序设计。
4.2 程序控制结构深入讲解MATLAB中的控制结构,包括循环、条件判断、错误处理等。
4.3 数据结构介绍MATLAB中的数据结构,如数组、结构体、单元数组等。
Matlab程序设计教程(第二版)刘卫国课后参考答案解析

Matlab程序设计教程(第⼆版)刘卫国课后参考答案解析第⼆章1 求下列表达式的值。
(1)w=sqrt(2)*(1+0.34245*10^(-6))(2)a=3.5;b=5;c=-9.8;x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/tan(b+c)+a(3)a=3.32;b=-7.9;y=2*pi*a^(2)*[(1-pi/4)*b-(0.8333-pi/4)*a](4)t=[2,1-3*i;5,-0.65];z=1/2*exp(2*t)*log(t+sqrt(1+t^(2)))2 求下列表达式A=[-1,5,-4;0,7,8;3,61,7];B=[8,3,-1;2,5,3;-3,2,0];(1)A+6*B A^2-B+eye(2)A*B A.*B B.*A(3)A/B B\A(4)[A,B] [A([1,3],:);B^2]3 根据已知,完成下列操作(1)A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]; K=find(A>10&A<25);A(K)(2)第三章1 从键盘输⼊⼀个3位数,将它反向输出,如输⼊639,出数936。
f=input('输⼊⼀个数:','s');f(end :-1:1)2 ⽤if语句score=input('请输⼊成绩:');if score>=90&&score<=100disp('A');elseif score>=80&&score<=89disp('B');elseif score>=70&&score<=79disp('C');elseif score>=60&&score<=69;disp('D');elseif score<60&&score>=0;disp('E');elsedisp('出错');end⽤switch语句score=input('请输⼊成绩:');switch fix(score/10)case {9,10}disp('A');case {8}disp('B');case {7}disp('C');case {6}disp('D');case {0,1,2,3,4,5}disp('E');otherwise第四章1题1) X=0:10;Y=x-x.^3/6;P lot(x,y)2) t=0:0.01:2*pi;x=8.*cos(t);y=4*sqrt(2).*sin(t);plot(x,y)2题M⽂件:t=-pi:pi/10:pi;y=1./(1+exp(-t));subplot(2,2,1);bar(t,y,'b');title('bar(t,y,''b'')');axis([-5,5,-3,3]); subplot(2,2,2);stairs(t,y,'k'); title('stairs (t,y,''k'')');axis([-5,5,-3,3]); subplot(2,2,3);stem(t,y,'m'); title('stem (t,y,''m'')');axis([-5,5,-3,3]); subplot(2,2,4);loglog(t,y,'g'); title('loglog(t,y,''g'')');axis([-5,5,-3,3]);3题1)t=0:pi/100:2*pi;y=5*cos(t)+4;polar(t,y,'-*')2)t=-pi/3:pi/100:pi/3;r=5*sin(t).^2./cos(t);polar(t,r,'-*')4题1)t=0:pi/100:2*pi;x=exp(-t/20).*cos(t);y=exp(-t/20).*sin(t);z=t;plot3(x,y,z)第五章:1题1) X=mean(A)Y=std(A,0,1)2) max(max(A))min(min(A))3) B=sum(A,2)sum(B)4) sort(A);sort(A,2,'descend')2题1)t=0:15:90;x1=[0,0.2588,0.5000,0.7071,0.8660,0.9659,1.0000];a1=0:1:90;y1=interp1(t,x1,a1,'spline')x2=[0,0.2679,0.5774,1.0000,1.7320,3.7320,NaN]; a2=0:1:75; y2= interp1(t,x2,a2,'spline')p1=polyfit(t,x1,5);z1=polyval(p1,a1)p2=polyfit(t,x2,5);z2=polyval(p2,a2)4题P=[2,-3,5,13];Q=[1,5,8];p=polyder(P)p1=polyder(P,Q)[p,q]= polyder(P,Q)5题P1=[1,2,4,0,5];P2=[1,0];P3=[1,2,3];1) P4=conv(P2,P3)P4=[0,1,2,3,0];P=P1+P42) x=roots(P)3) A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5];4) Z=polyvalm(P,A)第8章1.分解因式. (2)factor(sym(‘5135’)) (1)syms A x y;A=x^4-y^4;factor(A)2.求函数的极限(1)syms x; (2)syms x;limit((x-2)/(x^2-4),x,2)f=(sqrt(pi)-sqrt(acos(x)))/sqrt(x+1);limit(f,x,-1,'right')3.求函数的符号导数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
num=input('请输入一个数'); switch num case -1 disp('I am a teacher.'); case 0 disp('I am a student.'); case 1 disp('You are a teacher.'); otherwise disp('You are a student.'); end
例8:编写函数文件求小于任意自然数n的Fibonacci数 列各项。数列中每個数便是前兩個数之和,而数列的 最初兩個数都是1 。
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 这个数列从第三项开始,每一项都等于前两项之和。
调用格式:
3. disp函数:命令窗口输出函数。
调用格式: disp(输出项) 注:输出项为字符串或矩阵。 例如 A='Hello,MATLAB'; disp(A) 输出为: Hello,MATLAB
选择结构的语句有if语句和switch语句。
格式一: if 条件 语句组 end 格式二: if 条件 语句组1 else 语句组2 end
其格式为: switch 表达式 case 值1 语句组1 case 值2 语句组2 …… case 值m 语句组m otherwise 语句组m+1 end
switch 语 句 根 据 变 量或表达式的取值 不同,分别执行不 同的语句。
例5: 根据变量 num 的值来决定显示的内容。
函数文件编制好后,就可调用函数进行计算了。 如 上 面 定 义 ffib 函 数 后 , 调 用 它 求 小 于 2000 的 Fibonacci数。 函数调用的一般格式是: [输出实参表数文件,实现直角坐标(x,y)与极坐标(γ,θ) 之间的转换。
格式为:
while (条件) 循环体语句 end
n
例6 已知函数 F (n) i ,计算F(100).
i 1
F=0; while
(i<=100) F=F+I; i=i+1; end
3. 循环的嵌套
如果一个循环结构的循环体又包括一个循 环结构,就称为循环的嵌套,或称为多重循环 结构。 多重循环的嵌套层数可以是任意的。可以 按照嵌套层数,分别叫做二重循环、三重循环 等。处于内部的循环叫作内循环,处于外部的 循环叫作外循环。
function f=ffib(n) %用于求Fibonacci数列的函数文件 %f=ffib(n) f=[1,1]; i=1; while f(i)+f(i+1)<n 将以上函数文件以 f(i+2)=f(i)+f(i+1); 文件名 ffib.m 存盘, i=i+1; 然 后 在 MATLAB 命 令窗口输入以下命 end 令 , 可 求 小 于 2000 的Fibonacci数。 result= ffib(2000)
计算函数在x点的值,该函数是如下形式的分段函 sin x x 数 f ( x) x x 3 / 2 ,绘制出 / 2 x cos x 3 / 2 x 其在[0,10] 上的曲线。
Matlab程序设计
MATLAB有两种工作方式:
交互式的命令 行工作方式
M文件的程序 工作方式
用MATLAB语言编写的程序,称为M文件。
M文件有两类:命令文件和函数文件。 命令文件:没有输入参数,也不返回输出参 数。 函数文件:可以输入参数,也可返回输出参 数。
建立新的M文件: 从MATLAB命令窗口的File菜单中选择New菜单项, 再选择M-file命令。
1. input函数:用于向计算机输入一个参数。
调用格式: A=input(提示信息,选项); 注:‘s’选项,则允许用户输入一个字符串。 例如想输入一个人的姓名,可采用命令 xm=input('What''s your name:','s')
例2求一元二次方程a2 +bx+c=0的根。
函数文件是另一种形式的M文件,每一个函数文件都 定义一个函数。事实上,MATLAB提供的标准函数大部分 都是由函数文件定义的。
函数文件由function语句引导,其格式为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体
注:其中函数名的命名规则与变量名相同。输入形参为 函数的输入参数,输出形参为函数的输出参数。当输出 形参多于1个时,则应该用方括号括起来。
编辑已有的M文件: 从MATLAB命令窗口的Flie菜单中选择Open M-file命 令。
将需要运行的命令编辑到一个命令文件中,然后在 MATLAB命令窗口输入该命令文件的名字,就会顺序执 行命令文件中的命令。
例1 建立一个命令文件将变量a,b的值互换。
e31.m文件:
a=1:9; b=[11,12,13;14,15,16;17,18,19]; c=a;a=b;b=c; a b 在 MATLAB 的命令窗口中输入 e31 ,将会执行该命令 文件。
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)] 将该程序以aa.m文件存盘,然后运行aa.m文件。
2. pause函数:暂停程序的执行。
pause(延迟秒数) 注:如果省略延迟时间,直接使用pause,则将暂停程 序,直到用户按任一键后程序继续执行。
函数文件tran.m: function [gama,theta]=tran(x,y) gama=sqrt(x*x+y*y); theta=atan(y/x); 调用tran.m的命令文件main1.m: x=input('Please input x=:'); y=input('Please input y=:'); [gam,the]=tran(x,y); gam the
实现循环结构的语句:for语句和while语句。
1. for语句
格式:
for 循环变量=表达式1:表达式2:表达式3 循环体语句 end
注:其中表达式 1 的值为循环变量的初值,表达式 2 的 值为步长,表达式 3 的值为循环变量的终值。步长为 1 时,表达式2可以省略。
2. while语句
格式三: if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组m+1 end
例3 输入三角形的三条边,求面积。
A=input('请输入三角形的三条边:A='); if A(1)+A(2)>A(3) & A(1)+A(3)>A(2) A(2)+A(3)>A(1) p=(A(1)+A(2)+A(3))/2; s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3))); disp(s); else disp('不能构成一个三角形。') end
&
运行:
请输入三角形的三条边:A= [4 5 6] 9.9216
例4: 输入一个字符,若为大写字母,则输出其后继 字符,若为小写字母,则输出其前导字符,若为其他 字符则原样输出。
c=input('','s');
if c>='A' & c<='Z' disp(setstr(abs(c)+1)); elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); else disp(c); end
例7:求[100,1000]以内的全部素数。
n=0; for m=100:1000 flag=1; j=m-1; i=2; while i<=j & flag if rem(m,i)==0 flag=0; end
i=i+1; end if flag n=n+1; prime(n)=m; end end prime
程序运行结果是: fac = Columns 1 through 6 1 2 6 24 120 720 Columns 7 through 10 504 40320 362880 3628800
1.
编写命令文件: 输入向量a和向量b,将a 和b分别进行从小到大排序并赋值给 c和d,计 算并输出c+d的值。 2. 求Fibonacci数列 (1)大于4000的最小项。 (2)5000之内的项数。 3. 求给定矩阵A中的所有素数的和。 4. 编写函数文件piecef.m, 通过调用piecef(x)
例10:利用函数的递归调用,求n!。
function f=factor(n) if n<=1 f=1; else f=factor(n-1)*n; end return; %返回 在 命 令 文 件 main2.m 中 调 用 函 数 文 件 factor.m: for i=1:10 fac(i)=factor(i); end fac