文章目录
一 MATLAB概述
1、简介
MATLAB是MathWorks公司推出的一套高性能数值分析计算软件。它将矩阵运算、数值分析、图形处理、编程技术等集成一体,为广大科研人员提供了一个强大的分析、计算、程序设计与仿真的工具,是科学计算最佳平台。
2、特性
口强大的计算功能
口编程语言简单、内涵丰富
口强大的2D、3D数据可视化功能
口丰富的工具箱
口强大的扩展能力、可开发功能
3、组成
MATLAB本身就是一个极其丰富的资源库,MATLAB产品由若干模块组成,不同的模块完成不同的功能,功能模块
示意图如下:
4、功能
·数值分析
·数值和符号计算
·工程与科学绘图
·控制系统的设计与方针
·数字图像处理
·数字信号处理
·通讯系统设计与仿真
·财务与金融工程
二 矩阵与阵列
1、变量及其操作
(1)命名规则
◆变量名第一个字母必须是英文字母。
◆变量名、函数名对字母的大小写是敏感的。如myVar与myvar表示两个不同的变量。
◆变量名可以包含英文字母、下划线和数字。
◆变量名不能包含空格、标点。
◆变量名最多可包含63个字符(6.5及以后的版本)
(2)赋值语句
变量 = 表达式
(3)运算符和表达式
示例1
>> a=3;b=2
b =
2
>> a+b
ans =
5
示例2
>> a=[1 4 5;2 6 5;3 6 9]
a =
1 4 5
2 6 5
3 6 9
>> a.^2#每个元素的平方
ans =
1 16 25
4 36 25
9 36 81
>> a*a
ans =
24 58 70
29 74 85
42 102 126
2、矩阵产生与表示
(1)直接输入法创建矩阵
通过键入矩阵中每个元素的值来建立并输入一个矩阵,只须以左方括号开始以逗号或空格为间隔输人元素值,行与行之间用分号隔开,最后以右方括号结尾即可。当矩阵中的元素个数比较少时,这种方法非常适用。
示例3:创建3*3数值矩阵和字符矩阵b
>> a=[1 2 3;4 5 6;7 8 9]
a =
1 2 3
4 5 6
7 8 9
>> b="string"
b =
"string"
(2)向量法创建矩阵
向量可以由冒号和数字产生。其格式为:
向量名=初值:增量:终值
当矩阵中的元素很多且有规律时,则可以通过向量来建立一个矩阵。其基本格式为:
矩阵名=向量
示例4:建立一个10以内的奇数矩阵
>> a = 1:2:10
a =
1 3 5 7 9
(3)函数法创建矩阵
利用内部语句和函数还可以快速产生一些特别有用的矩阵,如单位矩阵随机矩阵、零矩阵等,如表所示。
示例5:建立空矩阵a、单位矩阵b、常数矩阵c、均匀分布随机矩阵d、正态分布的随机矩阵e、零矩阵f。
>> a = []
a =
[]
>> b = eye(3,4)
b =
1 0 0 0
0 1 0 0
0 0 1 0
>> c = ones(3,4)
c =
1 1 1 1
1 1 1 1
1 1 1 1
>> d = rand(4,5)
d =
0.8147 0.6324 0.9575 0.9572 0.4218
0.9058 0.0975 0.9649 0.4854 0.9157
0.1270 0.2785 0.1576 0.8003 0.7922
0.9134 0.5469 0.9706 0.1419 0.9595
>> e = randn(5)
e =
0.6715 1.0347 0.8884 1.4384 -0.1022
-1.2075 0.7269 -1.1471 0.3252 -0.2414
0.7172 -0.3034 -1.0689 -0.7549 0.3192
1.6302 0.2939 -0.8095 1.3703 0.3129
0.4889 -0.7873 -2.9443 -1.7115 -0.8649
>> f = zeros(3)
f =
0 0 0
0 0 0
0 0 0
3、矩阵元素的引用
(1)、矩阵单个元素与行、列提取
MATLAB允许用户对一个矩阵的单个元素进行操作,可以通过元素的下标进行(行、列的序号是从1开始的),修改某些元素的值不会影响其他元素的值。
示例6:单个元素与行、列提取
>> a = [1 2 3;2 3 4;3 4 5;4 5 6]
a =
1 2 3
2 3 4
3 4 5
4 5 6
>> a(2,3)%提取第2行第三列元素,用逗号隔开行列
ans =
4
>> a(2:3,:)%提取a矩阵的2,3行;其中冒号表示从某行(列)到某行(列),只一个冒号表示全部行或列
ans =
2 3 4
3 4 5
>> a(:,1:2)%提取a矩阵的1,2列
ans =
1 2
2 3
3 4
4 5
(2)向量标识方法
**向量标识方式A(vr,vc)**,这种标识方式特别有用。令vr=[i1,i2....ik]、vc=[j1,j2...jn]分别是含有矩阵A的行号和列号的单调向量,A(vr,vc)是 取出矩阵A的第i1,i2....ik行与j1,j2....jn列**交叉处的元素所构成的新矩阵**
示例7:向量标识方法构成新矩阵
>> a = [1 2 3;4 5 6;7 8 9]
a =
1 2 3
4 5 6
7 8 9
>> vr= [1,3]
vr =
1 3
>> vc = [2,3]
vc =
2 3
>> b = a(vr,vc)%取出a矩阵的1,3行和2,3列组成新的矩阵b
b =
2 3
8 9
4、矩阵基本操作
(1)矩阵提取子块、合并短阵、转置与展开
提取子块:提取矩阵的某一部分,可以使用冒号表达式。在MATLAB中,冒号“:”表示“全部”
示例8:输入一个4*3的a矩阵,选出前三行构成一个新矩阵b,再选出前两列构成另一个矩阵c
>> a=[ 1 2 3;4 5 6;7 8 9;10 11 12]
a =
1 2 3
4 5 6
7 8 9
10 11 12
>> b=a(1:3,:)
b =
1 2 3
4 5 6
7 8 9
>> c=a(:,1:2)
c =
1 2
4 5
7 8
10 11
矩阵合并
把两个矩阵合并成一个大矩阵 C=[A;B]
矩阵的转置
用符号”’”(单引号)可 以进行矩阵的转置运算。
矩阵的展开
矩阵的展开是按照矩阵在内存中的实际存放形式展开的。矩阵的元素在内存中是按列存放的,即先存放第一列,接着存放第二列…把一个矩阵内的所有元素统一展开成一个列向量,其指令格式为:B=A(:)
示例9:把矩阵A[ 1 3 5;7 9 11]和矩阵B[2 4 6]合并成一个矩阵,再转置后展开
>> A = [ 1 3 5;7 9 11]
A =
1 3 5
7