Matlab初步(讲稿) 上课方式:学生边听讲、边用机器练习 调用 Matlab软件:在 windows平台上,双击“ Matlab”图标 说明:执行此命令,将进入“ Matlab工作区(命令区)”,在这里可以下达、 执行符合 Matlab语法的各种命令。 .矩阵;数组 1.矩阵 2-18 例:输入一个矩阵031|,并用A代表此矩阵 -596 再输入一个矩阵 ,并用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(ij)表示矩阵A的第i行、第j列交叉处的元素 练习:AA(3,1)A(1,2)A(2,3)aa(2,3)y=A(3,1)=a(2,2) (2)可修改个别元素 练习:a(2,2)=8 (3)可把矩阵的型号(即:行个数、列个数)放大 练习 A(2.4)9Aa(3,5)=99a (4)一些特殊矩阵 m行n列的全0矩阵: zeros(m,n) 全1矩阵:ones(mn) m行n列的单位矩阵:eyem,n) 随机矩阵:rand(m,n) (随机矩阵的每个元素都是:开区间(0.1)内的均匀分布随机数) 练习 zero s(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)内的随机数
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) rand(3,4) rand(1,10) 请产生 20 个在区间(0,8)内的随机数, 请产生 20 个在区间(3,8)内的随机数
对矩阵作裁剪、拼接 裁剪:从矩阵中提取某些行、某些列(关键符号:) 如(练习):A(2,;)是A的第2行(;1)是A的第1列 A(1:2,2:4)是A的第1、2行,与第2、3、4列交叉点元素 12345678 输入W=98765432,它的第2、3行,与第3、4、5、6列交 23456789 叉点元素是什么? 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)看结果,猜一猜什么规则? 检验:WW(:,5)=看结果,猜一猜什么规则? 此时,W还剩7个列,请你用一个命令去掉它的第3、5列 拼接:把若干个矩阵、数,拼凑、结合成一个矩阵 先做准备:把机器中全部的常量(包括矩阵、数)清除,命令为 clear 147 0-3 再重新输入:A=258,B=-1-4,a=[0 练习 左右拼接[A,B][B,A][a,8][8a76 上下拼接[Aa][a;A][A,8,18,28;a] 试一试:左右拼接[A,a][A,8] 上下拼接[AB][A8,18 题:用这三个矩阵A、B、a,拼接出矩阵 4258 2-5369 1810-128 3.数组 1×n型矩阵(即:只有一行的矩阵),称为行向量,也称为数组。 例:用a1表示一个从0到18的全体偶数构成的数组。 解:法一:格式为起点:步长:终点 命令为a1=0:2:18 法二:格式为 linspace起点,终点,个数) 命令为a1= linspace(0,18,10)
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.数组 1n 型矩阵(即:只有一行的矩阵),称为行向量,也称为数组。 例:用 a1 表示一个从 0 到 18 的全体偶数构成的数组。 解: 法一: 格式为 起点 : 步长 : 终点 命令为 a1=0:2:18 法二: 格式为 linspace(起点 , 终点 , 个数) 命令为 a1=linspace(0,18,10)
(这两种格式的命令都表示等差数列) 练习:用a2表示一个从9到1的全体奇数构成的数组 用a3表示一个从9到9的全体整数构成的数组 用第二种格式、用:4表示一个从6到8的5个数构成的等差数列 把两个数组a与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,其本质是AB A/B读作B右除A,其本质是AB 主要用来解“矩阵方程”,如:AXB=C,其中A,B,C均为已知矩阵, X是未知矩阵,则X=ACB-.命令是X=(AC)B 例:2 3,求 +0.1x2+0.2x32+0.3x4=5 例:解线性方程组 0.1x1+x2+0.2x3+0.3x4=6 0.1x+02x2+x3+0.3x1=7 0.1x1+0.2x2+0.3x3+x4=8 2.数组运算 点乘点乘方点左除 点右除 练习:a=[12,34]b={5,6,7,8]c=156,7] a *bb. 2 a. 3 a 0.5 a \ b a/bb a 通过练习,搞明白运算规则 若两个矩阵A、B同型号,则A.*BA^B合法;
(这两种格式的命令都表示等差数列) 练习:用 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,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/BB.A合法 10 练习 学习运算规则 0-22 三.命令语句,函数 1.命令语句格式:变量一表达式 (1)“表达式”不可缺省,“变量=”可缺省。 若语句中缺省“变量=”,则机器把执行结果自动记为ans 例如:[0.2]*[3;12],(此命令中只有表达式,缺省“变量=”),结果为ans= (2)同一行可以写多个语句,语句与语句之间用逗号或分号隔开。 练习:(借用前面的ab) 整行命令为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软件的专用符号。 几个专用符号: 是圆周率x eps是最小浮点数(即:机器所能够处理的最小正数) Inf 是+ NaN是不定值 练习:pi 2/0 (3-3)(2“0) 介绍 format long与 format 2.函数 (1)普通函数(也称标量函数,简称函数) 常见的函数 exp log 10 Sq round floor ceil 四舍五入取整 负向取整 正向取整 f(a1) 设∫(x)是普通函数,A ,则f(A) 练习:A12 46 cos(a) tan(A) exp(A) log(A)log10(A) sqrt(A) a[-601-449-2500.990992.50449601 rou floor(a)
若两个矩阵 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 练习: = 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)向量函数(也称数组函数) 常见的向量函数: length nax mun sum sort pro mean medan 度(维数) 排序乘积平均值 定义:设a是一个行向量、或列向量,则 length(a)是指向量a所包含的数的个数 a)是指向量a中的最大数 是指向量a中的全部数的和 a)是把向量a中的数,按照从小到排序,得到一个新的向量 prod(a)是指向量a中的全部数的积; mean(a)是指向量a中的全部数的平均值 mediane(a)若 length(a)奇,则是指向量 sort(a)中位于中间的那个数 若 length(a)偶,则是指向量sort(a)中位于中间的那两个数的平均值 例:a=[4,3-1061,b 0 yu sort(a=[-1, 0, 3, 4, 61, sort(b) median(a)3, median (b0. 5, mean(a)=2.4, mean(b)2.25 继续定义:设A是一个真正的矩阵(行数、列数都不小于2),则 length(A)是A的行数、列数两者中的最大者 sort(A)是把A的每个列各自排序,得到一个新的矩阵 其余的6个向量函数,作用于A是首先分别作用于每个列得到一个个数, 然后再把这些数写成一行,得到一个行向量。 定义完毕。 例:A=1-213,则1 length(A)=5max(A)=6.85 2-5-42 min(A)=[0-5,-4,1 sm(A={12,34.15](A=2013 6855 mean(A)=[240.6,0.8 median(A)=[2,0,1,3 习题:用机器产生一个6×4型矩阵G,它的元素是“0至99范围内的均匀分
(2)向量函数(也称数组函数) 常见的向量函数: length max min sum sort prod mean median 长度(维数) 和 排序 乘积 平均值 中值 定义:设 a 是一个行向量、或列向量,则 length(a) 是指 向量 a 所包含的数的个数; max(a) 是指 向量 a 中的最大数; sum(a) 是指 向量 a 中的全部数的和; sort(a) 是把向量 a 中的数,按照从小到排序,得到一个新的向量; prod(a) 是指 向量 a 中的全部数的积; mean(a) 是指 向量 a 中的全部数的平均值; median(a) 若 length(a)奇,则是指 向量 sort(a)中位于中间的那个数; 若 length(a)偶,则是指 向量 sort(a)中位于中间的那两个数的平均值。 例: − = − = 9 1 0 1 a [4,3, 1,0,6], b , 则 sort(a)=[-1,0,3,4,6], sort(b)= − 9 1 0 1 , median(a)=3, median(b)=0.5, mean(a)=2.4, mean(b)=2.25 继续定义:设 A 是一个真正的矩阵(行数、列数都不小于 2),则 length(A) 是 A 的行数、列数两者中的最大者; sort(A) 是 把 A 的每个列各自排序,得到一个新的矩阵; 其余的 6 个向量函数,作用于 A 是 首先分别作用于每个列得到一个个数, 然后再把这些数写成一行,得到一个行向量。 定义完毕。 例: − − = − 0 8 5 1 2 5 4 2 1 2 1 3 6 2 1 4 3 0 1 5 A ,则 length(A)=5 max(A)=[6,8,5,5] min(A)=[0,-5,-4,1] sum(A)=[12,3,4,15] sort(A)= − − − 6 8 5 5 3 2 1 4 2 0 1 3 1 2 1 2 0 5 4 1 mean(A)=[2.4,0.6,0.8,3] median(A)=[2,0,1,3] 习题:用机器产生一个6 4型矩阵 G,它的元素是“0 至 99 范围内的均匀分