Matlab初步(讲稿)
上课方式:学生边听讲、边用机器练习。
调用Matlab软件:在windows平台上,双击“Matlab”图标。
说明:执行此命令,将进入“Matlab工作区(命令区)”,在这里可以下达、执行符合Matlab语法的各种命令。
一.矩阵;数组
1.矩阵
例:输入一个矩阵,并用A代表此矩阵;
再输入一个矩阵,并用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)内的随机数
2.对矩阵作裁剪、拼接裁剪:从矩阵中提取某些行、某些列 (关键符号,)
如(练习),A(2,:) 是A的第2行 A(:,1) 是A的第1列
A(1:2,2:4) 是A的第1、2行,与第2、3、4列交叉点元素
输入 ,它的第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
再重新输入:,
练习,左右拼接 [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,拼接出矩阵
3.数组
型矩阵(即:只有一行的矩阵),称为行向量,也称为数组。
例:用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 读作 B右除A,其本质是 
主要用来解“矩阵方程”,如:AXB=C,其中A,B,C 均为已知矩阵,X是未知矩阵,则 ,命令是 X=(A\C)/B,
例:,求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./B B.\A 合法,
练习:,学习运算规则。
三.命令语句,函数
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
四舍五入取整 负向取整 正向取整设是普通函数,,则
练习,,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)向量函数