matlab 原来是 matrix laboratory(...

63
matlab 的的的的的的的

Upload: lewis

Post on 22-Feb-2016

321 views

Category:

Documents


0 download

DESCRIPTION

Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。. 命令行运行方式 M 文件运行方式. 二、 Matlab 中的窗口. 命令窗口. 提示. 例如: a, A, li_2003, Li2003n …… 都是合法的。. 工作空间窗口. 工作区( workplace): 接受 Matlab 命令的内存区域,存储着命令窗口输入的命令和创建的所有变量值。. 命令 M 文件没有输入参数,也不返回输出参数,只是一些命令行的组合。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

matlab 的基本使用方法

Page 2: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

一、 Matlab 概述 1 、 Matlab 简介

Matlab 原来是 Matrix Laboratory( 矩阵实验室 ) 的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

Page 3: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

Matlab 的发展过程20 世纪 70 年代 Cleve Moler Fortran 语言编

写1983 年 Cleve Moler

John Little C 语言编写内核

1984 年 Cleve MolerJohn Little

MathWorks 公司

Page 4: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

2 、 Matlab 的集成环境Matlab 语言Matlab 工作区 Matlab 数学函数库Matlab API ( application program interface)

图形用户界面( GUI )

Page 5: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

3 、 Matlab 语言及特点Matlab 语言是以数组为基本数据单位,包括控制流程语句、函数、数据结构、输入输出及面向对象等特点的高级语言 。运算符和库函数极其丰富,语言简洁,编程效率高; 既具有结构化的控制语句 ,又具有面向对象编程特性; 图形功能强大; 有功能强大的工具箱 ;易于扩展。

Page 6: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

Matlab 运行环境简介一、 Matlab 的运行方式

1. 命令行运行方式2. M 文件运行方式

二、 Matlab 中的窗口命令窗口命令历史窗口起始面板工作空间窗口

M 文件窗口当前目录窗口图形窗口GUI 制作窗口

Page 7: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

命令窗口若在表达式后面跟“;”,将不显示结果。

当不指定输出变量时, Matlab 将计算结果赋给缺省变量 ans ( answer 的缩写)在 Matlab 里,有很多控制键和方向键可用于命令行的编辑。

提示

Page 8: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

例:当漏敲命令 y=(2*sqrt(5))/2 的字符“ r” 时,我们可怎么办?提示 若一个表达式在一行写不下,可换行,但必须在行尾加上三个英文句号。

例如,可键入:S=(1/2+1/3+1/4+sin(3*x+y))*cos(x)…

-1/5+1/6

Page 9: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

变量名命名规则:以字母开头,后面可跟字母,数字和下划线;大小写字母有区别;不超过 31 个字母;不能与内部函数重名。例如: a, A, li_2003, Li2003n ……

都是合法的。

Page 10: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

特殊变量名:ans 用于结果的缺省变量名pi 圆周率eps 计算机的最小数,当和 1 相加就产生一个比 1 大的数NaN 不定量,如 0/0

i 或 j 虚数单位realmin 最小可用正实数realmax 最大可用正实数nargin 所用函数的输入变量数目nargout 所用函数的输出变量数目

Page 11: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

工作空间窗口 工作区( workplace): 接受 Matlab 命令的内存区域,存储着命令窗口输入的命令和创建的所有变量值。

who 或 whos 显示当前工作区中的所有变量clear 清除工作区中所有变量clear( 变量名)清除指定的工作区变量save( 文件名) 将当前工作区的变量存储在一个 MAT— 文件中load( 文件名) 调出一个 MAT— 文件quit 或单击右上角的“ x” 按钮,退出工作区

Page 12: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

M 文件窗口1 、 M 文件的建立

进入程序编辑器( Matlab Editor/Debug) :从“ File” 菜单中选择“ New” 及” M—file” ;输入程序:在“ Matlab Editor/Debug” 窗口输入 Matlab 程序;保存程序:单击“ save” 按钮,出现一个对话框,在文件名一框中键入一个文件名,单击“保存”按钮。

Page 13: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

2 、命令 M 文件及其运行 命令 M 文件没有输入参数,也不返回输出参数,只是一些命令行的组合。命令 M 文件没有输入参数,也不返回输出参数,只是一些命令行的组合。运行时,只需要在命令编辑区中键入 M 文件的名字即可运行。

在 M 文件中对程序的注释是以符号“ %” 开始直到该行结束的部分,程序执行时会自动忽略。

Page 14: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

函数 M 文件的文件名必须与其函数名相同;输出变量如果多于 1 个,则应该用中括号括起来;输入变量应该用逗号隔开;当函数无输出参数时,输出参数项应空缺或用空的中括号表示。函数 M 文件不能访问工作区中的变量,它的所有变量均为局部变量。

3 、函数 M 文件及其调用函数 M 文件的第一行必须为:function [ 输出变量列表 ]= 函数名(输入变量列表)

Page 15: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

三、 Matlab 的帮助系统1 、帮助命令

help 函数名 % 可寻求关于某函数的帮助例如:键入 help sqrt

使用函数时,应用小写。help 子目录标题 % 可显示某一类的所有函数或命令

例如:键入 help graph2d

lookfor 关键词 % 返回包含所指定关键此的那些项例如:键入 lookfor complex

Page 16: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

2 、帮助窗口在 Matlab 命令窗口中进入帮助窗口的方法:双击菜单条上的问号按钮;键入 helpwin 命令;选取帮助菜单里的“ Help Window”项。

3 、演示帮助单击 help 菜单中的 Demos 选项,打开演示窗口,选中演示子项,单击“ run” 按钮,进行演示。

Page 17: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

四、 Matlab 常用命令介绍1. 矩阵的加减运算例 1:A=[1,2,3 ; 2,3,4] ;

注意 :同型矩阵才能进行加减运算 .

分号为了不显示中间过程

该分号为了换行 B=[0,1,-4;-2,3,1]; A+B A-B

Page 18: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

例 2: A=[1,2,3;2,3,4;0,-2,-1] ; B=[-1,2;0,1;-2,3] ; C=[4,5,6;-4,5,3;-9,0,-2]; A*B A .*B A^3 A .^ 3

注意 :只有满足矩阵相乘条件才能进行乘法及方幂运算 .

2. 乘法运算

同型两矩阵才能点数乘 , 它们是对应元素相乘数组的点方幂的对应元素的方幂

Page 19: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

例 3: 求解方程组 :

,,

,,

0674522

963852

4321

432

421

4321

xxxxxxxxxxxxxx

解 :A=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6]

b=[8,9,-5,0] ’

x=A\b ………………% 求解 AX=b 型方程组 .

3. 矩阵的除法运算

注意 :A\B=inv(A)*B( 左除 ),B/A=B*inv(A)( 右除 ).

求矩阵的转置

Page 20: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

4. 矩阵的点除运算若 A 与 B 为同型的矩阵 , 则 A./B 表示 A 与 B 的对应位置上的元素相除 , 得到与 A 或 B 同型的矩阵 .

例 4:A=[1,2;2,1]

B=[2,1;1,2]

A./B

B.\A

关系为 A.\B=B./A

Page 21: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

5. 有关冒号的运算及化简

A(:,i) 取 A 的第 i 列 ;A(i,:) 取 A 的第 i 行 ;A(:,i)=b 用列向量 b 取代 A 中的第 i 列 ;

rref(A) 化 A 为简化行阶梯形矩阵 .

Page 22: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

6. 矩阵的转置 , 行列式 , 模 , 秩及逆运算已知矩阵 A1).A 的转置为 A’;2).A 的行列式为 det(A);3). 向量 A 的模长为 norm(A);4).A 的逆为 inv(A) 或 A^(-1);5).A 的秩为 rank(A).6 )化 A 为行简化阶梯矩阵 rref(A)

Page 23: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

7. 由函数生成矩阵1). 生成单位阵 .eye(n) 生成 n 阶单位阵 ;eye(m,n) 生成 m×n 阶单位阵 , 对角线上全为 1, 其余元素全为 0;eye(size(A)) 生成与 A 同型的单位阵 .

Page 24: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

2). 生成全 1 矩阵 .

ones(n) 生成 n×n 的全 1 阵 ;

ones(m,n) 生成 m×n 的全 1 阵 ;

ones(size(A)) 生成与 A 同型的全 1 阵 .

7. 由函数生成矩阵

Page 25: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

3). 生成全 0 阵zeros(n) 生成 n×n 全 0 阵 ;zeros(m,n) 生成 m×n 全 0 阵 ;zeros(size(A)) 生成与 A 同型的全 0 阵 .

7. 由函数生成矩阵

Page 26: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

4. 产生 n 阶对角矩阵用命令 : diag([a1 a2 … an]).

5. 生成范德蒙矩阵 : vander([a1 a2 … an]).

6. 生成 n 阶幻方矩阵命令 : magic(n).

7. 生成 m×n 型均匀分布随机数矩阵 : rand(m,n).

8. 生成 m×n 型正态分布随机数矩阵 : rands(m,n).

7. 由函数生成矩阵

Page 27: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

8. 矩阵的标识1. 元素的标识方式 A(i,j), 表示取 A 的第 i行第 j 列位置上的元素 .2. 向量的标识方式 :A(i,:) 表示取 A 的第 i 行向量 ;A(:,j) 表示取 A 的第 j 列向量 ;A(:,i)=[] 表示删除 A 的第 i 列 ;A(j,:)=[] 表示删除 A 的第 j 行 .

Page 28: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

1. 指数和对数函数 :exp(x),sqrt(x),log(x),log10(x),log2(x);2. 三角和反三角函数 :sin(x),cos(x),tan(x),cot(x),asin(x),atan(x),···;

3. 计算两个向量的内积与外积 :dot(a,b) ,cross(a,b);

9. 函数运算(一) . 常用数学函数

Page 29: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

4. 数值函数 :

fix(x) 朝 0 方向取整floor(x) 朝-∞方向取整ceil(x) 朝+∞方向取整round(x) 四舍五入到最接近的整数sign(x) 符号函数abs(x) 绝对值函数

9. 函数运算

Page 30: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

(二)数组特征及矩阵操作函数 size(A) 返回一个二元素向量,第一个元素为 A 的行数,第二个元素为 A 的列数 size(A,1) 返回 A 的行数 size(A,2) 返回 A 的列数length(A) 返回 max(size(A))

Page 31: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

fliplr(A) 矩阵作左右翻转diag(A) 提取 A 的对角元素,返回列向量diag(v) 以向量 v 作对角元素创建对角矩阵 flipud(A) 矩阵作上下翻转

Page 32: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

(三)矩阵函数 d=eig(A), [v,d]=eig(A) 特征值与特征向量det(A) 行列式计算inv(A) 矩阵的逆

Page 33: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

orth(A) 正交化poly(A) 特征多项式rank(A) 矩阵的秩trace(A) 矩阵的迹 ( 对角线元素之和 )

Page 34: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

统计函数 , 只有当它们作用于向量时 , 才有意义 . 它们也可作用于矩阵 , 此时产生一个行向量 , 行向量的每一个元素是函数作用于矩阵相应列向量的结果 .

max(v) 最大值min(v) 最小值sum(v) 求和mean(v) 求平均值sort(v) 按升序排列length(v) 求向量元素个数find(v) 求向量中满足条件元素[ra,ir]=sort(v) ir 为其在原向量中的位置

(四)统计函数

Page 35: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

cumsum(v) 求向量的部分和prod(v) 求向量的元素的乘积sumprod(v) 求向量的部分元素的乘积std(v) 求向量的标准差corrcoef(v) 求向量的相关系数cov(v) 求向量的协方差矩阵

Page 36: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

10.Matlab 的绘图命令(一)函数表绘二维 ( 平面 ) 曲线 .(1) plot(x,y);

例 1. 正弦函数图形x = 0:10;

y = sin(x); xi = 0:.25:10;

yi =sin(xi);

plot(x,y,'o',xi,yi)

0

Page 37: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

例 2 衰减振荡函数 : y=e -0.5x sin 5x 图形 .

命令 :x=0:0.1:4*pi;y= exp(-0.5*x).*sin(5*x);plot(x,y)

10.Matlab 绘图命令

Page 38: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

10.Matlab 绘图命令 (2) plot(x1,y1,x2,y2);

例 3. 在同一坐标系下作出两条曲线 y=sin(x) 和y=cos(x) 在 [0,2π] 上的图形 .

方法 ( 一 ):x=linspace(0,2*pi,30);y=[sin(x),cos(x)];plot(x,y)

方法 ( 二 )x=linspace(0,2*pi,30);y1=sin(x);y2=cos(x);plot(x,y1,x,y2)

Page 39: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

调用格式 :polar(theta,rho);

x=linspace(0,2*pi,1000);

y=sin(2*t).*cos(2*x);

polar(x,y)

(3) 绘制极坐标图

例 4. 绘制极坐标图形 : 2cos2sin

Page 40: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

(4) 基本的绘图控制在调用 plot 时 , 可指定颜色、线形和数据图标,基本调用格式为:plot(x,y,’color-linestyle-marker’)

颜色: y 黄 ; r 红 ; g 绿 ; b 蓝 ; w 白 ; k 黑 ; m 紫 ; c 青线型 : -( 实线 ); :( 点线 ); -.(虚点线 ); - -(虚线 )

数据点图标 : .( 小黑点 ); +( 加号 ); *(星号 ); o( 小圆圈 )

pentagram( 五角星 )

Page 41: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

(5) 图形控制命令

clg 清除图形窗口shg 显示(重调)图形窗口hold on(off) 保持图形subplot(m,n,p) 将图形窗口分为子窗口

同一坐标系不同坐标系

Page 42: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

10.Matlab 绘图命令(6) 图形标注xlabel 给 x轴标注ylabel 给 y轴标注zlabel 给 z轴标注title 给整个图形加标题text 在特定位置加字符串grid 在图形上加网格

Page 43: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

例 5: 用 subplot 分别在不同的坐标系下作出 下列四条曲线 , 为每幅图形加上标题 . (1) y=sinx;

(2) y=cosx;

(3) y=2sinx*cosx

(4) y=2sinx/cosx

Page 44: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

命令 :x=linspace(0,2*pi,30);y=sin(x);z=cos(x);

u=2*sin(x).*cos(x);v=2*sin(x)./cos(x);

subplot(2,2,1),plot(x,y),title(‘sinx’)

subplot(2,2,2),plot(x,z),title(‘cosx’)

subplot(2,2,3),plot(x,u),title(‘2sinx*cosx’)

subplot(2,2,4),plot(x,v),title(‘sinx/cosx’)

Page 45: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

(二) 三维绘图 :

命令 :t=linspace(0,10*pi,100)plot3(sin(t),cos(t),t)

例 6 、作螺旋线 x=sint,y=cost,z=t

调用格式: plot3(x(t),y(t),z(t))

1 、空间曲线

Page 46: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

2. 空间曲面 :函数名 函数说明meshgrid 网格mesh 三维网格图形meshc 带有等高线三维网格图形surf 三维阴影表面图形surfc 带有等高线的三维阴影表面图形Surface 表面对象图surfl 带有光照阴影的三维表面图形contour 等高线图形绘制contour3 三维等高线图形绘制

Page 47: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

命令 :x=-8:0.5:8; y=x;[X,Y]=meshgrid(x,y);r=sqrt(X.^2+Y.^2)+eps;Z=sin(r)./r ;mesh(X,Y,Z)

例 2 (巴拿马草帽图形 ) 8,8,sin

22

22

yx

yx

yxz

没有它,会出现什么?

Page 48: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

命令 :x=-8:0.5:8;y=x;[X,Y]=meshgrid(x,y);

R=sqrt(X.^2+Y.^2)+eps;

Z=sin(R)./R;

subplot(2,2,1),mesh(X,Y,Z)

subplot(2,2,2),meshc(X,Y,Z)

subplot(2,2,3),surf(X,Y,Z)

subplot(2,2,4),surfl(X,Y,Z)

Page 49: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

五、 Matlab 编 程1 、关系运算符< 小于; <= 小于或等于> 大于; >= 大于或等于= = 等于; ~= 不等于

一、运算符

2 、逻辑运算符与 (&)

或( | )非( ~ )

Page 50: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

五、 Matlab 编程

程序结构

顺序结构

循环结构

分支结构

For 语句While 语句

if—end 语句switch—case 语句

Page 51: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

五、 Matlab 编 程1 、 for 语句 循环结构基本格式:for <循环变量 > =< 初值 > : [步长 :] <终值 > 循环语句体end For 语句允许一组命令固定的和预定的次数重复执行。

Page 52: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

例 1 、计算

100

1

2

i

i

程序: ( 一 )Numsum=0 ;for i=1: 1: 100Numsum=Numsum+i^2;endNumsum

程序: ( 二 )A=[1:100];B=A.^2;Numsum=sum(B)

步长为 1可省略

Page 53: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

2 、 while 语句 循环结构

基本格式:while < 条件 > 循环语句体end

while 语句一般用于事先不能确定循环次数的情况 . 只要条件的逻辑值为 1,就执行循环语句体 , 条件的逻辑值为 0 ,就终止该循环 .

Page 54: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

例 2 、产生一个 Fibonacci 数列,要求最后一个数不超过 1000 。 Fibonacci 数列满足:1,,3,2,1 2112 aakaaa kkk ,其中

程序:A=[1 , 1] ; i=1 ;while A(i)+A(i+1)<1000 A(i+2)=A(i)+A(i+1); i=i+1; endA

Page 55: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

例 3 编写一个按学生总成绩,从高到低排序的程序。程序:function y=paixu(A)sum1=sum(A');[sort1,id]=sort(sum1);[m,n]=size(A) ; B=A;

Page 56: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

程序(续)for I=1:m

B(I,:)=A(id(I),:);

end

C=[B,sort1'];

disp('sorting by descent of sum')

disp(flipud(C))

Page 57: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

1 、 if 语句 分支结构

基本格式(一)If 条件条件语句体end

基本格式(二)If 条件条件语句体1

else

条件语句体2

end

Page 58: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

分支结构基本格式(三)If < 条件 1>

条件语句体1

elseif < 条件 2>

条件语句体2

……

elseif < 条件 n>

条件语句体n

else

条件语句体n+1

end

注意是else而不是elsei

f

Page 59: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

分支结构

例 4 、已知分段函数

21

20sin

0

)(

2

x

xx

xx

xf

的值。求 )3(),4

(),4( fff

Page 60: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

程序: ( fhanshu.m)function Y=fhanshu(X)N=length(X);for I=1:N if X(I)<=0 Y(I)=X(I)^2; elseif X(I)>0&X(I)<=pi/2 Y(I)=sin(X(I)); else Y(I)=1; endend

Page 61: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

例 5 、用循环语句生成一个 n维向量,要求它的元素满足 Fibonacci 规则,即向量的第 k+2 个元素满足: 1,,3,2,1 2112 aakaaa kkk ,其中

程序:While (1) n=input(‘input the… dimension—n(n>2)’);If ( n>2) break;endend

退出当前循环

Page 62: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

程序(续)A=[1 1]for I=3:n A(I)=A(I-1)+A(I-2);enddisp(‘A=‘);disp(A);

Page 63: Matlab 原来是 Matrix Laboratory( 矩阵实验室)的缩写,主要用来处理矩阵等代数运算,后来发展为通用科技计算、图视交互系统和程序语言。

2 、 swtich 和 case 语句 分支结构

swtich 表达式(标量或字符串)case 值 1

语句体1

case { 值 2.1, 值 2.2,…}

语句体2

……

otherwise

语句体n

end