第2.2讲 MATLAB编程基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB基础与编程
第二部分: MATLAB编程基础
MATLAB数值计算
——MATLAB 具有出色的数值计算能力, 是世界数值计算软件的主导
数值运算的功能
创建矩阵 矩阵运算 多项式运算 线性方程组 数值统计 线性插值 函数优化 微分方程的数值解
一、命令行的基本操作
三、matlab文件的类型
1. 数据文件 .mat mat文件是matlab以标准二进制格式保存
的数据文件,可将工作空间中有用的数据 变量保存下来。 mat文件的生成和调用是由函数save和 load完成的。 例如:load gatlin
image(X)
2. m文件
m文件的语法类似于c语言,但又有其自身特 点。它只是一个简单的ASCII码文本文件,执 行程序时逐行解释运行程序,matlab是解释 性的编程语言。
that % are larger than tol.
% Copyright (c) 1984-94 by The MathWorks, Inc.
s = svd(x); if (nargin == 1)
tol = max(size(x)) * max(s) * eps; end r = sum(s > tol);
a*b ans =
25 55 85
37 85 133
46 109 172
a./b=b.\a
a.\b=b./a
——
给出a,b对应元素间的商 .
a./b=b.\a — 都是a的元素被b的对应
元素除
a.\b=b./a — 都是a的元素被b的对应 元素除
例: a=[1 2 3];b=[4 5 6]; c1=a.\b; c2=b./a
a=[1,2,3;4,5,6;7,8,9];a^2 ans =30 36 42
66 81 96 102 126 150
※当一个方阵有复数特征值或负实 特征值时,非整数幂是复数阵。
3. 矩阵乘方—— a^n,a^p,p^a
a^0.5
ans =
0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -
符号的作用
逗号和分号的作用 ----逗号和分号可作为指令间 的分隔符,matlab允许多条语句 在同一行出现。 ----分号如果出现在指令后, 屏幕上将不显示结果。
变量 注意:
只要是赋过值的变量,不管是否在屏幕上显 示过,都存储在工作空间中,以后可随时显 示或调用。
变量名尽可能不要重复,否则会覆盖 。 当一个指令或矩阵太长时,可用•••续行
matlab的程序设计
—— matlab语言称为第四代编 程语言,程序简洁、可读性 很强而且调试十分容易,是 matlab重要组成部分。
m文件简介
用户如想灵活应用matlab去解决实际问题 ,充分调用matlab的科学技术资源,就需 要编辑m文件
包含matlab语言代码的文件称为m文件,其 扩展名为m。
矩阵的扩展
关系运算
关系符号
< <= > >= == ~=
意义
小于 小于或等于
大于 大于或等于
等于 不等于
5. 矩阵的数组运算
数组运算指元素对元素的算术运算,
与通常意义上的由符号表示的线性代数
矩阵运算不同
1. 数组加减(.+,.-)
a.+b a.- b
对应元素相加减(与矩阵 加减等效)
2. 数组乘除(,./,.\)
有矩阵逆的运算,在matlab中有两
种矩阵除运算
3. 矩阵乘方—— a^n,a^p,p^a
a ^ p —— a 自乘p次幂
方阵 >1的整数
对于p的其它值,计算将涉及特征值 和特征向量,如果p是矩阵,a是标量 a^p使用特征值和特征向量自乘到p次 幂;如a,p都是矩阵,a^p则无意义。
3. 矩阵乘方—— a^n,a^p,p^a
’ —— 矩阵转置 sqrt —— 矩阵开方
5.矩阵的一些特殊操作
矩阵的变维 a=[1:12];b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:)
矩阵的变向 rot90:旋转; fliplr:上翻; flipud:下翻
矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角 ;triu:抽取主上三角
可以用A(,)= 来修改。
矩阵的修改
例如
a=[1 2 0;3 0 5;7 8 9]
Hale Waihona Puke Baidu
a =1
2
0
3 7
0 8
5 9
还可以用函数
a(3,3)=0
a =1
2
0
subs修改。
3
0
5
780
二、数据的保存与获取 把matlab工作空间中一些有用的数
据长久保存下来的方法是生成mat数 据文件。
save —— 将工作空间中所有的 变量存到matlab.mat文件中。
编辑m文件可使用各种文本编辑器。
一、matlab的工作模式
指令驱动模式
通常matlab以指令驱动模式工作,即 在matlab 窗口下当用户输入单行指令时, matlab 立即处理这条指令,并显示结果, 这就是matlab命令行方式。
命令行操作时,matlab窗口只允许一 次执行一行上的一个或几个语句。
0.4
plot(x,y)
0.2
0
-0.2
又如 sqrt(x) —— 求x的平方根 abs(x)—— 求x的绝对值 det(a)—— 求行列式的值
等等。matlab拥有大量的内置数学函数,供我们在 数值运算和符号运算中调用。
(3).函数m文件—需要输入变量,返回输出变量
matlab用户可以根据需要编辑自己的m文件,它们 可以像库函数一样方便的调用,从而极大地扩展了 matlab 的能力。
0.3487i
1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 0.0385i
1.5873 - 0.5940i + 0.2717i
1.9503 - 0.1611i 2.3134
4. 矩阵的其它运算
inv —— 矩阵求逆 det —— 行列式的值 eig —— 矩阵的特征值 diag —— 对角矩阵
m文件有两类
独立的m文件 — 称命令文件 可调用m文件 — 称函数文件
(1). 命令文件 — 简单的m文件
命令文件实际上是一串指令的集合,与在命 令窗口逐行执行文件中的所有指令,其结果 是一样的。没有输入输出参数。
命令文件包括两部分:注释文件和程序文件
%RANK Number of linearly independent rows or columns. % K = RANK(X) is the number of singular values of X % that are larger than MAX(SIZE(X)) * NORM(X) * EPS. % K = RANK(X,tol) is the number of singular values of X
矩阵元素 还有伴随矩阵、稀疏矩阵、魔方矩阵 、对角矩阵、范德蒙等矩阵的创建, 就不一一介绍了。 注意:matlab严格区分大小写字母,因 此a与A是两个不同的变量。
matlab函数名必须小写。
矩阵的修改
直接修改 可用键找到所要修改的矩阵,用键
移动到要修改的矩阵元素上即可修改。 指令修改
三、矩阵运算 2. 矩阵乘()运算
规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。 a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b c =14
32 23
三、矩阵运算 d=[-1;0;2];f=pi*d f = -3.1416
0 6.2832
矩阵除的运算在线性代数中没有,
5 2.5000
在matlab窗口输入数据和命令进行计算时, 当处理复杂问题和大量数据时是不方便的。 因此应编辑m文件。
命令行方式程序可读性差,而且不能存储, 对于复杂的问题,应编写成能存储的程序文 件。
m文件模式
将matlab语句构成的程序存储成以m为扩展 名的文件,然后再执行该程序文件,这种工 作模式称为程序文件模式。
即可恢复保
load data ——
存过的所有
load data a b —— 变量
mat文件是标准的二进制文件, 还可以ASCII码形式保存。
三、矩阵运算 1. 矩阵加、减(+,-)运算
规则: 相加、减的两矩阵必须有相同的行
和列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量
。标量与矩阵的所有元素分别进行 加减操作。
对于某一类特殊问题,如创建了许多m函数 文件,则可形成新的工具箱。
这种用matlab语言创建定义新的matlab函数 的功能,正体现了matlab语言强大的扩展功 能。
函数m文件的格式: function 返回变量=函数名(输入变量) 注释说明语句段 程序语句段
程序文件不能在指令窗口下建立,因为指令 窗口只允许一次执行一行上的一个或几个语 句。
二、m文件的创建
m文件的类型是普通的文本文件,我们可以 使用系统认可的文本文件编辑器来建立m文件 。如dos下的edit,windows的记事本和word 等。
具体的创建方法: 1. 在matlab命令
符号的作用
冒号的作用 用于生成等间隔的向量,默
认间隔为1。 用于选出矩阵指定行、列及
元素。 循环语句
一、命令行的基本操作
2.用matlab函数创建矩阵
空阵 [ ] — matlab允许输入空阵 ,当一项操作无结果时,返回空阵。
rand —— 随机矩阵 eye —— 单位矩阵 zeros ——全部元素都为0的矩阵 ones ——全部元素都为1的矩阵
c1 = 4.0000 2.5000 2.0000
c2 = 4.0000 2.5000 2.0000
3. 数组乘方(.^) —
例:
a=[1 2 3];b=[4 5 6];
z=a.^2
z=
1.00 9.00
z=a.^b
z= 729.00
1.00
元素对元素的幂
4.00 32.00
MATLAB程序设计
程序 部分
(2).matlab内置函数文件
matlab自定义的函数文件称内置函数文件
调用内置函数的方法:使用函数名并给出相 应的入口、出口参数即可。
例如:sin.m函数——用type sin查不到。
调用格式:y=sin(2*x)
实际应用中:
1
x=0:2*pi/180:2*pi; 0.8
0.6
y=sin(2*x)
创建矩阵的方法
直接输入法 规则:
矩阵元素必须用[ ]括住 矩阵元素必须用逗号或空格分隔 在[ ]内矩阵的行与行之间必须 用分号分隔
矩阵元素
矩阵元素可以是任何matlab表达 式 ,可以是实数 ,也可以是复 数,复数可用特殊函数i,j 输 入: a=[1 2 3;4 5 6] x=[2 pi/2;sqrt(3) 3+5i]
ab —— a,b两数组必须有相同的 行和列两数组相应元素相乘。
a=[1 2 3;4 5 6;7 8 9];
b=[2 4 6;1 3 5;7 9 10];
a.*b
ans =
2
8
18
4
15
30
49
72
90
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10];
例如:
x1=0:10
x1 =
0
1
2
3
4
5
6
7
8
9 10
x2=0:3:11
x2 =
0
3
x3=11.5:-3:0
x3 =
11.5000
6 8.5000
9 5.5000
2.5000
x1=0:10,x2=0:3:11,x3=11.5:-3:0
x1 =
0
1
2
3
4
6
7
8
9 10
x2 =
0369
x3 =
11.5000 8.5000 5.5000
默认文件名
二、数据的保存与获取
save data——将工作空间中所有 的变量存到data.mat文件中。
save data a b ——将工作空间中 a和b变量存到data.mat文件中。 下次运行matlab时即可用load指 令调用已生成的mat文件。
二、数据的保存与获取
load ——
窗口点击file 菜单 new m-file
注意:所创建的m文件必须纳入matlab搜 索路径后,才能在matlab命令窗口运行。
matlab搜索路径的设置 matlab 缺省路径是c:\matlab\bin 1. cd c:\myfile 2. path(path,'c:\myfile') 3. 打开matlabrc.m文件,将c:\myfile加上 即可。 4. 用pathtool路径浏览器设定当前目录。
第二部分: MATLAB编程基础
MATLAB数值计算
——MATLAB 具有出色的数值计算能力, 是世界数值计算软件的主导
数值运算的功能
创建矩阵 矩阵运算 多项式运算 线性方程组 数值统计 线性插值 函数优化 微分方程的数值解
一、命令行的基本操作
三、matlab文件的类型
1. 数据文件 .mat mat文件是matlab以标准二进制格式保存
的数据文件,可将工作空间中有用的数据 变量保存下来。 mat文件的生成和调用是由函数save和 load完成的。 例如:load gatlin
image(X)
2. m文件
m文件的语法类似于c语言,但又有其自身特 点。它只是一个简单的ASCII码文本文件,执 行程序时逐行解释运行程序,matlab是解释 性的编程语言。
that % are larger than tol.
% Copyright (c) 1984-94 by The MathWorks, Inc.
s = svd(x); if (nargin == 1)
tol = max(size(x)) * max(s) * eps; end r = sum(s > tol);
a*b ans =
25 55 85
37 85 133
46 109 172
a./b=b.\a
a.\b=b./a
——
给出a,b对应元素间的商 .
a./b=b.\a — 都是a的元素被b的对应
元素除
a.\b=b./a — 都是a的元素被b的对应 元素除
例: a=[1 2 3];b=[4 5 6]; c1=a.\b; c2=b./a
a=[1,2,3;4,5,6;7,8,9];a^2 ans =30 36 42
66 81 96 102 126 150
※当一个方阵有复数特征值或负实 特征值时,非整数幂是复数阵。
3. 矩阵乘方—— a^n,a^p,p^a
a^0.5
ans =
0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -
符号的作用
逗号和分号的作用 ----逗号和分号可作为指令间 的分隔符,matlab允许多条语句 在同一行出现。 ----分号如果出现在指令后, 屏幕上将不显示结果。
变量 注意:
只要是赋过值的变量,不管是否在屏幕上显 示过,都存储在工作空间中,以后可随时显 示或调用。
变量名尽可能不要重复,否则会覆盖 。 当一个指令或矩阵太长时,可用•••续行
matlab的程序设计
—— matlab语言称为第四代编 程语言,程序简洁、可读性 很强而且调试十分容易,是 matlab重要组成部分。
m文件简介
用户如想灵活应用matlab去解决实际问题 ,充分调用matlab的科学技术资源,就需 要编辑m文件
包含matlab语言代码的文件称为m文件,其 扩展名为m。
矩阵的扩展
关系运算
关系符号
< <= > >= == ~=
意义
小于 小于或等于
大于 大于或等于
等于 不等于
5. 矩阵的数组运算
数组运算指元素对元素的算术运算,
与通常意义上的由符号表示的线性代数
矩阵运算不同
1. 数组加减(.+,.-)
a.+b a.- b
对应元素相加减(与矩阵 加减等效)
2. 数组乘除(,./,.\)
有矩阵逆的运算,在matlab中有两
种矩阵除运算
3. 矩阵乘方—— a^n,a^p,p^a
a ^ p —— a 自乘p次幂
方阵 >1的整数
对于p的其它值,计算将涉及特征值 和特征向量,如果p是矩阵,a是标量 a^p使用特征值和特征向量自乘到p次 幂;如a,p都是矩阵,a^p则无意义。
3. 矩阵乘方—— a^n,a^p,p^a
’ —— 矩阵转置 sqrt —— 矩阵开方
5.矩阵的一些特殊操作
矩阵的变维 a=[1:12];b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:)
矩阵的变向 rot90:旋转; fliplr:上翻; flipud:下翻
矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角 ;triu:抽取主上三角
可以用A(,)= 来修改。
矩阵的修改
例如
a=[1 2 0;3 0 5;7 8 9]
Hale Waihona Puke Baidu
a =1
2
0
3 7
0 8
5 9
还可以用函数
a(3,3)=0
a =1
2
0
subs修改。
3
0
5
780
二、数据的保存与获取 把matlab工作空间中一些有用的数
据长久保存下来的方法是生成mat数 据文件。
save —— 将工作空间中所有的 变量存到matlab.mat文件中。
编辑m文件可使用各种文本编辑器。
一、matlab的工作模式
指令驱动模式
通常matlab以指令驱动模式工作,即 在matlab 窗口下当用户输入单行指令时, matlab 立即处理这条指令,并显示结果, 这就是matlab命令行方式。
命令行操作时,matlab窗口只允许一 次执行一行上的一个或几个语句。
0.4
plot(x,y)
0.2
0
-0.2
又如 sqrt(x) —— 求x的平方根 abs(x)—— 求x的绝对值 det(a)—— 求行列式的值
等等。matlab拥有大量的内置数学函数,供我们在 数值运算和符号运算中调用。
(3).函数m文件—需要输入变量,返回输出变量
matlab用户可以根据需要编辑自己的m文件,它们 可以像库函数一样方便的调用,从而极大地扩展了 matlab 的能力。
0.3487i
1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 0.0385i
1.5873 - 0.5940i + 0.2717i
1.9503 - 0.1611i 2.3134
4. 矩阵的其它运算
inv —— 矩阵求逆 det —— 行列式的值 eig —— 矩阵的特征值 diag —— 对角矩阵
m文件有两类
独立的m文件 — 称命令文件 可调用m文件 — 称函数文件
(1). 命令文件 — 简单的m文件
命令文件实际上是一串指令的集合,与在命 令窗口逐行执行文件中的所有指令,其结果 是一样的。没有输入输出参数。
命令文件包括两部分:注释文件和程序文件
%RANK Number of linearly independent rows or columns. % K = RANK(X) is the number of singular values of X % that are larger than MAX(SIZE(X)) * NORM(X) * EPS. % K = RANK(X,tol) is the number of singular values of X
矩阵元素 还有伴随矩阵、稀疏矩阵、魔方矩阵 、对角矩阵、范德蒙等矩阵的创建, 就不一一介绍了。 注意:matlab严格区分大小写字母,因 此a与A是两个不同的变量。
matlab函数名必须小写。
矩阵的修改
直接修改 可用键找到所要修改的矩阵,用键
移动到要修改的矩阵元素上即可修改。 指令修改
三、矩阵运算 2. 矩阵乘()运算
规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。 a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b c =14
32 23
三、矩阵运算 d=[-1;0;2];f=pi*d f = -3.1416
0 6.2832
矩阵除的运算在线性代数中没有,
5 2.5000
在matlab窗口输入数据和命令进行计算时, 当处理复杂问题和大量数据时是不方便的。 因此应编辑m文件。
命令行方式程序可读性差,而且不能存储, 对于复杂的问题,应编写成能存储的程序文 件。
m文件模式
将matlab语句构成的程序存储成以m为扩展 名的文件,然后再执行该程序文件,这种工 作模式称为程序文件模式。
即可恢复保
load data ——
存过的所有
load data a b —— 变量
mat文件是标准的二进制文件, 还可以ASCII码形式保存。
三、矩阵运算 1. 矩阵加、减(+,-)运算
规则: 相加、减的两矩阵必须有相同的行
和列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量
。标量与矩阵的所有元素分别进行 加减操作。
对于某一类特殊问题,如创建了许多m函数 文件,则可形成新的工具箱。
这种用matlab语言创建定义新的matlab函数 的功能,正体现了matlab语言强大的扩展功 能。
函数m文件的格式: function 返回变量=函数名(输入变量) 注释说明语句段 程序语句段
程序文件不能在指令窗口下建立,因为指令 窗口只允许一次执行一行上的一个或几个语 句。
二、m文件的创建
m文件的类型是普通的文本文件,我们可以 使用系统认可的文本文件编辑器来建立m文件 。如dos下的edit,windows的记事本和word 等。
具体的创建方法: 1. 在matlab命令
符号的作用
冒号的作用 用于生成等间隔的向量,默
认间隔为1。 用于选出矩阵指定行、列及
元素。 循环语句
一、命令行的基本操作
2.用matlab函数创建矩阵
空阵 [ ] — matlab允许输入空阵 ,当一项操作无结果时,返回空阵。
rand —— 随机矩阵 eye —— 单位矩阵 zeros ——全部元素都为0的矩阵 ones ——全部元素都为1的矩阵
c1 = 4.0000 2.5000 2.0000
c2 = 4.0000 2.5000 2.0000
3. 数组乘方(.^) —
例:
a=[1 2 3];b=[4 5 6];
z=a.^2
z=
1.00 9.00
z=a.^b
z= 729.00
1.00
元素对元素的幂
4.00 32.00
MATLAB程序设计
程序 部分
(2).matlab内置函数文件
matlab自定义的函数文件称内置函数文件
调用内置函数的方法:使用函数名并给出相 应的入口、出口参数即可。
例如:sin.m函数——用type sin查不到。
调用格式:y=sin(2*x)
实际应用中:
1
x=0:2*pi/180:2*pi; 0.8
0.6
y=sin(2*x)
创建矩阵的方法
直接输入法 规则:
矩阵元素必须用[ ]括住 矩阵元素必须用逗号或空格分隔 在[ ]内矩阵的行与行之间必须 用分号分隔
矩阵元素
矩阵元素可以是任何matlab表达 式 ,可以是实数 ,也可以是复 数,复数可用特殊函数i,j 输 入: a=[1 2 3;4 5 6] x=[2 pi/2;sqrt(3) 3+5i]
ab —— a,b两数组必须有相同的 行和列两数组相应元素相乘。
a=[1 2 3;4 5 6;7 8 9];
b=[2 4 6;1 3 5;7 9 10];
a.*b
ans =
2
8
18
4
15
30
49
72
90
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10];
例如:
x1=0:10
x1 =
0
1
2
3
4
5
6
7
8
9 10
x2=0:3:11
x2 =
0
3
x3=11.5:-3:0
x3 =
11.5000
6 8.5000
9 5.5000
2.5000
x1=0:10,x2=0:3:11,x3=11.5:-3:0
x1 =
0
1
2
3
4
6
7
8
9 10
x2 =
0369
x3 =
11.5000 8.5000 5.5000
默认文件名
二、数据的保存与获取
save data——将工作空间中所有 的变量存到data.mat文件中。
save data a b ——将工作空间中 a和b变量存到data.mat文件中。 下次运行matlab时即可用load指 令调用已生成的mat文件。
二、数据的保存与获取
load ——
窗口点击file 菜单 new m-file
注意:所创建的m文件必须纳入matlab搜 索路径后,才能在matlab命令窗口运行。
matlab搜索路径的设置 matlab 缺省路径是c:\matlab\bin 1. cd c:\myfile 2. path(path,'c:\myfile') 3. 打开matlabrc.m文件,将c:\myfile加上 即可。 4. 用pathtool路径浏览器设定当前目录。