MATLAB简称为矩阵实验室,MATLAB集成了矩阵级别的运算,以此为特点,进行多维空间上的验证。
一 矩阵的建立
1.1 元素直输法创建矩阵
如 A=[1 2 3;1 2 3;1 2 3];
1.2. 使用冒号快速建立矩阵
B=[1:3;4:6];
默认步长为1,也可以修改步长。
2.调用函数生成特殊矩阵
zeros(m,n)
生成m行n列的零矩阵
ones(m,n)
生成m行n列的全1矩阵
rand(m,n)
生成m行n列的随机矩阵, 矩阵中的每个元素都是0到1之间的随机数, 而且随机数满足均匀分布
randn(m,n)
生成m行n列的随机矩阵, 矩阵中每个元素都是标准正态分布的
生成行向量
e1:e2:e3
e1和e3是生成向量的第一个和最后一个元素,e2是步长,当e2忽略时,默认为1
linspace(a,b,n) a和b是生成向量的第一个和最后一个元素,n是元素总数,当n忽略时,自动默认为100
利用matlab函数创建数组:
diag() 产生对角数组
eye() 产生单位数组
magic() 产生魔方数组
rand() 产生均匀分布的随机数组
randn() 产生正太分布的随机数组
ones() 产生全1数组
zeros() 产生全0数组
random() 产生各种分布的随机数组
二 矩阵的扩展与拆分
1.矩阵元素的及扩展
MATLAB允许用户对一个矩阵的单个元素进行赋值和操作
例如:A(3,2)=100
即矩阵A的第三行第二列的元素赋值为100.
矩阵的扩展:
A=[1 2 3;4 5 6];
A(4,5)=10;
此时矩阵A的第四行第五列元素赋值为10,其它扩展的元素为0.
A =
1 2 3 0 0
4 5 6 0 0
0 0 0 0 0
0 0 0 0 10
2.矩阵的拆分
(1)利用冒号表达式获得子矩阵
A(:,j)表示取A矩阵的第j列全部元素;
A(i,:)表示取A矩阵第i行的全部元素。
A(i:i+m,:)表示取A矩阵第i到i+m的全部元素;
A(i:i+m,k:k+m)表示取A矩阵第i到i+m行内,在第k到k+m中的所有元素。
(2)利用空矩阵删除矩阵的元素
在MATLAB中,定义[ ]为空矩阵。
给变量X赋空矩阵的语句是X=[ ]。空矩阵存在于工作空间,但是维数为0
利用空矩阵删除矩阵的元素,空矩阵是指没用任何元素的矩阵。即
>> X=[]
X =
[]
>> clear all %创建3行5列矩阵A
>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15]
A =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
%赋空矩阵,即删除第2、4列的元素
>> A(:,[2,4])=[]
A =
1 3 5
6 8 10
11 13 15
三 矩阵处理函数
1.矩阵分析
函数名 | 功能描述 | 函数名 | 功能描述 |
---|---|---|---|
norm | 范数 | null | 化零空间 |
rank | 矩阵的秩 | orth | 正交空间 |
det | 矩阵的行列式 | rref | 矩阵的简化梯型形式 |
trac | 矩阵的迹 | subspace | 两个子空间的角度 |
2.矩阵分解
函数名 | 功能描述 | 函数名 | 功能描述 |
lu | 矩阵LU分解 | qr | 矩阵的QR分解 |
svd | 矩阵的奇异值分解 | schur | 矩阵的Schur分解 |
四 数据的基本运算
1.算术运算
(1)加减乘除,乘方运算:+ - * \ / ^
(2)点运算 ./, .\, .^ ,.*
(3)字符串运算
(4)符号运算
2.关系运算
所有关系运算符作为输入的任何非零数都被看做“逻辑真”,而只有0才被认为“逻辑假”。
3.逻辑运算
运算符 功能描述 示例
& 逻辑与。连个操作数同时为1,运算结果为1,否则为0 1&1,返回1。1&0,0&1,0&0返回0
| 逻辑或。两个操作数同时为0,运算结果为0,否则为1 0|0返回0。1|0,0|1,1|1返回1
~ 逻辑非。操作数为0时,运算结果为1;否则为0 ~0返回1。~1返回0
例题1:
(1 生成一个6*6的矩阵,其元素值均为1;
(2 生成一个5*9的矩阵,其元素值均为0;
(3 生成一个5*5的单位矩阵;
(4 生成一个5*5的正态分布随机矩阵。
A=ones(6,6)
A=zeros(5,9)
A=eye(5)
A=rand(5,5)