Matlab初步(讲稿) 上课方式:学生边听讲、边用机器练习。 调用 Matlab软件:在 windows平台上,双击“ Matlab”图标。 说明:执行此命令,将进入“ Matlab工作区(命令区)”,在这里可以下 达、执行符合 Matlab语法的各种命令 .矩阵;数组 1.矩阵 2 18 例:输入一个矩阵031,并用A代表此矩阵; 01 再输入一个矩阵 并用a代表此矩阵 命令为:A=[2,-18:0,31;-596];a=[0,1,-1;-1,2,1]; 说明:(1)输入上述命令后,敲回车键,机器才执行此命令 (2)你发现机器屏幕没反应,其实它早已接受并执行了你的命令,不 信?请下命令A就有反应了。再下命令a (3)清屏(把屏幕上的 Matlab工作区清理的干干净净) 屏幕空了,但你的那两个矩阵A、a还在机器中 (4)注意要点:中括号逗号分号字母大小写。 注意:(1)A(ij)表示矩阵A的第i行、第j列交叉处的元素 练习:A A(3,1) A(1,2) A(2,3) a(2,3) y=A(3,1)*a(2,2) (2)可修改个别元素 练习 (3)可把矩阵的型号(即:行个数、列个数)放大 练习:A(2,4 A a(3,5)=99 (4)一些特殊矩阵 m行n列的全0矩阵: zeros(m,n) 全1矩阵: ones(m, n) m行n列的单位矩阵:eye(m,n 随机矩阵:rand(mn) (随机矩阵的每个元素都是:开区间(01)内的均匀分布随机数)
Matlab 初步(讲稿) 上课方式:学生边听讲、边用机器练习。 调用 Matlab 软件:在 windows 平台上,双击“Matlab”图标。 说明:执行此命令,将进入“Matlab 工作区(命令区)”,在这里可以下 达、执行符合 Matlab 语法的各种命令。 一.矩阵;数组 1.矩阵 例:输入一个矩阵 − − 59 6 0 31 2 18 ,并用 A 代表此矩阵; 再输入一个矩阵 − − 1 2 1 0 1 1 ,并用 a 代表此矩阵. 命令为:A=[2,-18;0,31;-59,6]; a=[0,1,-1;-1,2,1]; 说明:(1)输入上述命令后,敲回车键,机器才执行此命令 (2) 你发现机器屏幕没反应,其实它早已接受并执行了你的命令,不 信? 请下命令 A 就有反应了。 再下命令 a (3)清屏(把屏幕上的 Matlab 工作区清理的干干净净) 屏幕空了,但你的那两个矩阵 A、a 还在机器中。 (4)注意要点:中括号 逗号 分号 字母大小写。 注意:(1) A(i,j) 表示矩阵 A 的第 i 行、第 j 列交叉处的元素 练习: A A(3,1) A(1,2) A(2,3) a a(2,3) y=A(3,1)*a(2,2) (2)可修改个别元素 练习: a(2,2)=8 a (3)可把矩阵的型号(即:行个数、列个数)放大 练习: A(2,4)=9 A a(3,5)=99 a (4)一些特殊矩阵 m 行 n 列的 全 0 矩阵:zeros(m,n) 全 1 矩阵:ones(m,n) m 行 n 列的 单位矩阵:eye(m, n) 随机矩阵:rand(m,n) (随机矩阵的每个元素都是:开区间(0.1)内的均匀分布随机数)
练习: zeros(2,3) zeros(1, 5) ones(4, 4) ones(2, 4) eye(3, 3 eye(3,5) eye(4,2) d(3,4) 请产生20个在区间(0,8)内的随机数 请产生20个在区间(3,8)内的随机数 2.对矩阵作裁剪、拼接 裁剪:从矩阵中提取某些行、某些列(关键符号 如(练习):A(2,;)是A的第2行A(,1)是A的第1列 A(1:2,2:4)是A的第1、2行,与第2、3、4列交叉点元素 输入W=98765432,它的第2、3行,与第3、4、5、6列 交叉点元素是什么? W的第1、3、5、7列构成的矩阵是W(:,l:2:7)(起点1,步长2,终点7) W的第1、3行,第2、5、8列构成的矩阵是W(1:2:3,2:3:8) 问:W的第1、4、7列构成的矩阵? W的第1、3行,第2、4、6列构成的矩阵 检验:W(;7:2:1)看结果,猜一猜什么规则? 检验:WW(:5)=看结果,猜一猜什么规则? 此时,W还剩7个列,请你用一个命令去掉它的第3、5列。 拼接:把若干个矩阵、数,拼凑、结合成一个矩阵 先做准备:把机器中全部的常量(包括矩阵、数)清除,命令为 clear 再重新输入:A=258,B=-1-4,a=0 练习:左右拼接[AB]B,A][a,8 8,a,7,6 上下拼接[Aa]|a;A][A,8,18,28;a] 试一试:左右拼接[Aa][A.8 上下拼接[A,B] [A8,18] 题:用这三个矩阵A、B、a,拼接出矩阵 1-4258 2-5369 1810-128 3.数组
练习: zeros(2,3) zeros(1,5) ones(4,4) ones(2,4) eye(3,3) eye(3,5) eye(4,2) rand(3,4) rand(1,10) 请产生 20 个在区间(0,8)内的随机数 请产生 20 个在区间(3,8)内的随机数 2.对矩阵作裁剪、拼接 裁剪:从矩阵中提取某些行、某些列 (关键符号 : ) 如(练习): A(2,:) 是 A 的第 2 行 A(:,1) 是 A 的第 1 列 A(1:2,2:4) 是 A 的第 1、2 行,与第 2、3、4 列交叉点元素 输入 = 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 W ,它的第 2、3 行,与第 3、4、5、6 列 交叉点元素是什么? W 的第 1、3、5、7 列构成的矩阵是 W(:,1:2:7) (起点 1,步长 2,终点 7) W 的第 1、3 行,第 2、5、8 列构成的矩阵是 W(1:2:3,2:3:8) 问:W 的第 1、4、7 列构成的矩阵? W 的第 1、3 行,第 2、4、6 列构成的矩阵? 检验: W(:,7:-2:1) 看结果,猜一猜什么规则? 检验: W W(:,5)=[] 看结果,猜一猜什么规则? 此时,W 还剩 7 个列,请你用一个命令去掉它的第 3、5 列。 拼接:把若干个矩阵、数,拼凑、结合成一个矩阵 先做准备:把机器中全部的常量(包括矩阵、数)清除,命令为 clear 再重新输入: − − − − − = = 2 5 1 4 0 3 , 3 6 9 2 5 8 1 4 7 A B ,a = 1 0 −1. 练习: 左右拼接 [A,B] [B,A] [a,8] [8,a,7,6] 上下拼接 [A;a] [a;A] [A;8,18,28;a] 试一试: 左右拼接 [A,a] [A,8] 上下拼接 [A;B] [A;8,18] 题:用这三个矩阵 A、B、a,拼接出矩阵 . 18 1 0 1 28 2 5 3 6 9 1 4 2 5 8 0 3 1 4 7 − − − − − − 3.数组
1×n型矩阵(即:只有一行的矩阵),称为行向量,也称为数组。 例:用a1表示一个从0到18的全体偶数构成的数组。 解:法一:格式为起点:步长:终点 命令为a1=0:2:18 法二:格式为 linspace(起点:终点:个数) 命令为al= linspace(:18:10) (这两种格式的命令都表示等差数列) 练习:用a2表示一个从9到1的全体奇数构成的数组 用a3表示一个从9到-9的全体整数构成的数组 用第二种格式、用a4表示一个从-6到8的5个数构成的等差数列; 把两个数组a2与a4合并成一个数组;|a2,a4 用a5表示数组1,4,7,37,38,35,32,,2,3,6,9,,39 二.运算 1.矩阵运算 加减乘乘方左除右除转置 (单引号) 注 :(1)+ *,^,\,/都应符合矩阵运算规则 (2)特别,数与数的运算:加+减-乘*除 (3)数与矩阵的加减乘 练习:A2+A2-AA-22*AA*2 (4)AB读作A左除B,其本质是A-B A/B读作B右除A,其本质是AB 主要用来解“矩阵方程”,如:AXB=C,其中A,B,C均为已知矩 ,X是未知矩阵,则X=ACB.命令是X=(AC)B 20 例:2 13,求ⅹ l-11 x+0.1x2+0.2x3+0.3x4=5 0.lx1+x,+0.2x+0.3x4=6 例:解线性方程组 0.1x1+0.2x2+x3+0.3x4=7 0.1x1+0 0.3x 2.数组运算
1n 型矩阵(即:只有一行的矩阵),称为行向量,也称为数组。 例:用 a1 表示一个从 0 到 18 的全体偶数构成的数组。 解: 法一: 格式为 起点 : 步长 : 终点 命令为 a1=0:2:18 法二: 格式为 linspace(起点 : 终点 : 个数) 命令为 a1=linspace(1:18:10) (这两种格式的命令都表示等差数列) 练习:用 a2 表示一个从 9 到 1 的全体奇数构成的数组; 用 a3 表示一个从 9 到-9 的全体整数构成的数组; 用第二种格式、用 a4 表示一个从-6 到 8 的 5 个数构成的等差数列; 把两个数组 a2 与 a4 合并成一个数组; [a2,a4] 用 a5 表示数组 1,4,7,…,37,38,35,32,…,2,3,6,9,…,39 二.运算 1.矩阵运算 加 减 乘 乘方 左除 右除 转置 + - * ^ \ / ‘ (单引号) 注:(1) + , - , * , ^ , \ , / 都应符合矩阵运算规则; (2)特别,数与数的运算: 加 + 减 - 乘 * 除 / (3)数与矩阵的 加 减 乘 练习: A 2+A 2-A A-2 2*A A*2 (4) A\B 读作 A 左除 B , 其本质是 A B −1 A/B 读作 B 右除 A , 其本质是 −1 AB 主要用来解“矩阵方程”,如:AXB=C,其中 A,B,C 均为已知矩 阵,X 是未知矩阵,则 −1 −1 X = A CB . 命令是 X=(A\C)/B . 例: = − − − − 3 2 1 3 1 4 1 1 2 0 1 1 1 2 1 0 2 1 1 X ,求 X=? 例:解线性方程组 + + + = + + + = + + + = + + + = 0.1 0.2 0.3 8 0.1 0.2 0.3 7 0.1 0.2 0.3 6 0.1 0.2 0.3 5 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 x x x x x x x x x x x x x x x x 2.数组运算
点乘点乘方点左除点右除 练习:a=[1,2,34]b=[56,7,81c=156,7] a *bb. 2 a.3 a 0.5 a b a/bb aa.c 通过练习,搞明白运算规则。 若两个矩阵A、B同型号,则A.*BA^B合法 若两个矩阵A、B同型号,且B的元素都非零,则A/BB.MA合法 练习 学习运算规则 三.命令语句,函数 1.命令语句格式:变量一表达式 (1)“表达式”不可缺省,“变量=”可缺省 若语句中缺省“变量=”,则机器把执行结果自动记为ans 例如:[10,-2]*[3:1;2],(此命令中只有表达式,缺省“变量=”),结果为ans=-1 (2)同一行可以写多个语句,语句与语句之间用逗号或分号隔开。 练习:(借用前面的a,b) 一整行命令为a,b,c=a*b’,d=a.*b,e=a.,/b再敲回车键执行命令。 (3)若只要求机器执行命令、而不让机器把某个语句的执行结果显示在 屏幕上,则必须在该语句之后跟分号 练习:一整行命令为a,b;c=a*b’,d=a.*b;e=a./b;再敲回车键执行命令。 (4)关于变量名:你可以任意用一个字符串来代表一个变量名,但必 须满足两条:字母打头;避开 Matlab软件的专用符号 几个专用符号:pi是圆周率x eps是最小浮点数(即:机器所能够处理的最小正数 是+ NaN是不定值 练习:pi 2/0 (3-3)(2*0) 介绍 format long与 format 2.函数 (1)普通函数(也称标量函数,简称函数) 常见的函数: sin cos tan exp log log10 sqrt abs floor ll 四舍五入取整 负向取整 正向取整 f(a1) f(an) 设f(x)是普通函数,A= 则∫(A)= f(an)…f(amn
点乘 点乘方 点左除 点右除 .* .^ .\ ./ 练习: a=[1,2,3,4] b=[5,6,7,8] c=[5,6,7] a.*b b.^2 a.^3 a.^0.5 a.\b a./b b.\a a.*c 通过练习,搞明白运算规则。 若两个矩阵 A、B 同型号,则 A.*B A.^B 合法; 若两个矩阵 A、B 同型号,且 B 的元素都非零,则 A./B B.\A 合法. 练习: − − − 3 3 2 2 1 1 , 0 2 2 1 0 1 ,学习运算规则。 三.命令语句,函数 1.命令语句格式: 变量=表达式 (1)“表达式”不可缺省, “变量=”可缺省。 若语句中缺省“变量=”,则机器把执行结果自动记为 ans . 例如:[1,0,-2]*[3;1;2] , (此命令中只有表达式,缺省“变量=”),结果为 ans = -1 . (2)同一行可以写多个语句,语句与语句之间用逗号或分号隔开。 练习:(借用前面的 a,b) 一整行命令为 a,b,c=a*b’,d=a.*b,e=a./b 再敲回车键执行命令。 (3)若只要求机器执行命令、而不让机器把某个语句的执行结果显示在 屏幕上, 则必须在该语句之后跟分号。 练习:一整行命令为 a,b;c=a*b’,d=a.*b;e=a./b; 再敲回车键执行命令。 (4)关于变量名:你可以任意用一个字符串来代表一个变量名,但必 须满足两条:字母打头;避开 Matlab 软件的专用符号。 几个专用符号: pi 是圆周率 eps 是最小浮点数(即:机器所能够处理的最小正数) Inf 是 + NaN 是不定值 练习: pi eps 2/0 (3-3)/(2*0) 介绍 format long 与 format 2.函数 (1)普通函数(也称标量函数,简称函数) 常见的函数: sin cos tan exp log log10 sqrt abs round floor ceil 四舍五入取整 负向取整 正向取整 设 f (x) 是普通函数, = m mn n a a a a A 1 11 1 ,则 . ( ) ( ) ( ) ( ) ( ) 1 11 1 = m mn n f a f a f a f a f A
练习:A= cos(A) tan(A) exp(A) log(A) log10(A) sqrt(A) a=[-601-4492500.990.992.504496.01] ound(a floor(a) (2)向量函数
练习: = 4 6 1 2 A ,cos(A) tan(A) exp(A) 1og(A) log10(A) sqrt(A) a=[-6.01 -4.49 -2.50 -0.99 0.99 2.50 4.49 6.01] round(a) floor(a) ceil(a) (2)向量函数