matlab整理版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1-2章
常用的命令和技巧
(1)若干个通用操作命令
Cd改变当目录
Clear 清除内存中的所有变量和函数
Clc擦除matlab工作窗口中所有显示的内容
Clf擦除matlab当前窗口中的图形
Dir列出指定目录下的文件和子目录清单
Disp在运行中显示变量或文字内容
Echo制运行文字指令是否显示
(2)命令行中的键盘按键
加目录到搜索路径范围:―file‖→‖set path‖→―browse ‖按钮选择文件夹→‖add to path‖→‖refresh‖→‖ save setings‖
(一) 向量产生
1.直接输入向量
向量元素用“[]”括起来,元素之间用空格、逗号或分号分隔,空格、逗号生成行向量,分号分隔生成列向量。
2. 用冒号表达式生成向量
格式:[变量=]n:s:m
功能:产生从n到m,步长为s的一系列值
3.线性等分向量的生成
用linspace 函数和logspace函数产生
格式:linspace(n,m,k)
产生一个从n到m等间隔的向量,其点数为k
y=logspace(n,m,k)生成n维对数等分向量,使得y(1)=10^n, y(k)=10^m
如:logspace(0,5,6)
产生6个元素。分别是1 10 100 1000 10000 100000
点积
dot(a,b) 返回a和b的数量点积,要求a和b必须同维。当a和b都为列向量时,dot(a,b)同于a’*b
–dot(a,b,dim) 返回a和b在维数为dim的点积
–Sum(a.*b)
●叉积:在数学上表示两相交向量的交点得垂直于两向量所在平面的向量。
cross(a,b) 返回向量a和b的叉积向量。即c=a*b。其中a和b必须为三维向量。
●混合积
dot(a,cross(b,c))
(一)矩阵的输入
1.实数矩阵
方法1:直接输入矩阵
约定: 用[ ]将所有的元素括起来
同行元素之间空格或逗号隔开
不同行之间分号隔开
●方法2: 内部语句或函数产生
举例: ones(2,5), 得到2*5 矩阵,各元素为1
举例: zeros(4,3),得到4*3矩阵,各元素均为零;e=rnd(2,3) 得到2*3随机矩阵
●方法3: 利用M文件产生矩阵
for i=1 :3
for j=1 :2
f(i,j)=i+j
end
end
f;
运行该程序后就会自动产生3*2矩阵
●方法3:在M文件输入矩阵的行列具体数值,存盘后在命令窗口中输入M文件的文
件名,运行该文件就能自动生成矩阵。
如下述例子就是在M文件(ls1)存放的内容
exm=[1 2 3
-1 -2 -3
3 4 5]
在命令窗口中输入ls1
●方法4: 利用外部文件装入到指定的矩阵
当数据量较多时.可借助于其它编辑的软件来实现
如:通过windows附件下的记事本进行编辑存盘后,使用命令:load [盘符][路径] <文件名.扩展名>
●方法5: 导入Excel数据文件中的数据该矩阵变量名为Excel数据文件中的文件名
●方法为:执行主窗口下的FILE菜单下的Import Data功能项,按照向导提示
初步完成。
1.产生基本矩阵的函数
Eye(n) 单位矩阵
格式: y= Eye(n) n*n的单位阵y
y= Eye(m, n) m*n的单位阵y
y= Eye(size(a)) 产生与A同维的单位阵y
(2) Ones 全1列阵
格式: y= ones(n) n*n的单位阵y
y= ones(m, n) m*n的单位阵y
y=ones(size(a)) 产生与A同维的单位阵y
(3) Zero全0矩阵
(4) Rand随机函数和阵列
2. 矩阵转置
格式:x’
3.矩阵的行列式值
函数为:det()
4.矩阵加,减
要求:A,B两矩阵整数相同:
矩阵与矩阵运算:对应位量上的元素相加.减;矩阵与标量加、减: 矩阵中的每个元素都与标量进行加.,减运算
5.矩阵乘法
要求:前一点矩阵的列数等于后一点矩阵的行数
①矩阵与矩阵相乘
②矩阵与标量相乘每个元素均乘以某一个标量
6.矩阵的除法(左除\)、(右除/)
a\b=inv(a)*b ax=b ⎭x=a-1b
b/a=b*inv(a) x*a=b ⎭x=b*a-1
注意:
(1) inv(a) 求矩阵的逆,要求a 为方阵
(2) Matlab采用IEEE算法,即使A是奇异(A的行列式值为0)照样进行,但会给出―Waring: Matrix is singular to working‖,当矩阵A为病态时, Matlab算法会造成计算误差可能很大,―Waring:Matrix is badly scaled to working precision‖
应用:
(1)解静定方程的解:ax=b
方法1: x=inv(a)*b
方法2: x=a\b
(2)求解的方程是超静定的(方程的个数多于未知数的个数)
用Householder直接求解方程的最小二乘解
举例:方程的系数矩阵:a=[3 4 6;5 7 9;2 5 8;3 –9 6]
常数项矩阵b=[2 ;3 ;4 ;7]
方程ax=b的解为:x=a\b
(3)求解的方程是欠静定的(方程的个数少于未知数的个数)
在解中至多有rank(a)(矩阵a的秩)个非0元素
举例:
系数矩阵:A=[3 4 6;5 7 9;2 5 8;3 –9 6] 的转置,常数项矩阵b=[2 ;3 ;4],则方程的解为:
X=a\b
要注意的是:欠静定方程的解是不惟一的,在MATLAB中用除法解方程时所得的解是所有解中范数最小的一个。
7.矩阵的乘方^
●p为整数时
p>0 a^P 表示a自乘p次
p<0 a^P 表示a自乘p次后的逆(非奇异矩阵成立)
p=0 a^P 将得到一单位矩阵
8.矩阵的开方运算
●函数为:sqrt(A)
9. 特征值与特征向量(矩阵必须为方阵)
●[x,y]=eig(a)
x 返回矩阵a特征向量,y为特征值矩阵。
10.秩
●rank(a)
11.积
●矩阵所有对角线上元素的和称为矩阵的积
函数为:trace(a)
12.逆
●当矩阵为方阵且非奇异时:Inv(a)