>> A=[]A = [] >> B=[6 5 3]B = 6 5 3 >> C=B'C = 6 5 3>> A=[1 2 3 4 5]A = 1 2 3 4 5 >> a1=A(1)%访问数组第一个元素a1 = 1 >> a2=A(1:3)%访问数组第1、2、3个元素a2 = 1 2 3 >> a3=A(3:end)%访问数组第3个到最后一个元素a3 = 3 4 5 >> a4=A(end:-1:1)%数组元素反序输出a4 = 5 4 3 2 1 >> a5=A([1 5])%访问数组第1个及第5个元素a5 = 1 5>>A=[1 2 3 4 5]A(3)=5A([1 4])=[1 1] A = 1 2 3 4 5 A = 1 2 5 4 5 A = 1 2 5 1 5zeros 生成元素全为0的矩阵
>> zeros(3:3)ans = 0 0 0 0 0 0 0 0 0ones 生成元素全为1的矩阵
>> ones(2:2)ans = 1 1 1 1eye 生成单位矩阵
>> eye(2:2)ans = 1 0 0 1rand 生成随机矩阵
>> rand(3:3)ans = 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575
| fliplr | 矩阵左右翻转 |
| flipud | 矩阵上下翻转 |
| triu | 矩阵的上三角部分 |
| tril | 矩阵的下三角部分 |
| diag | 对角矩阵 |
| full | 将稀疏矩阵化为普通矩阵 |
| sparse | 生成稀疏矩阵 |
| randn | 生成正态分布随机矩阵 |
| subspace | 计算两个子空间的夹角 |
| rref | 矩阵的行最简形(初等行变换求解线性方程组) |
| orth | 正交规范化 |
| null | 求基础解系(矩阵的零空间) |
| trace | 方阵的迹%特征值的和等于迹 |
| det | 方阵的行列式 |
| rank | 矩阵的秩 |
| normest | 稀疏矩阵(或大规模矩阵)的2-范数估计 |
| norm | 矩阵或向量范数 |
| pinv | 矩阵的广义逆 |
| qr | 矩阵的正交三角分解 |
| luinc | 稀疏矩阵的不完全LU分解 |
| ilu | 稀疏矩阵的不完全LU分解 |
| lu | 矩阵的LU分解 |
| linsolve | 矩阵方程组的求解 |
| cholinc | 稀疏矩阵的不完全Cholesky分解 |
| chol | 矩阵的Cholesky分解(矩阵的平方根分解) |
| condest | 稀疏矩阵1-范数的条件数估计 |
| cond | 方阵的条件数 |
| inv | 方阵的逆 |
4. 与特征值或奇异值有关的矩阵函数
| eig | 方阵的特征值与特征向量 |
| svd | 矩阵的奇异值分解 |
| eigs | 稀疏矩阵的一些(默认6个)最大特征值与特征向量 |
| svds | 矩阵的一些(默认6个)最大奇异值与向量 |
| hess | 方阵的Hessenberg形式分解 |
| schur | 方阵的Schur分解 |
dot数组的点积
sum数组元素的乘积之和
>> A=[1 2 3];>> B=[4 5 6];>> C=dot(A,B)C = 32>> D=sum(A.*B)D = 32关系运算的运 算法 则如下:
当两个比较量是标量时,直接比较两个数的大小。若关系成立,则返回的结果为1,否则为0。
当两个比较量是维数相等的数组时,逐一比较两个数组相同位置的元素,并给出比较结果。最终的关系运算结果是一个与参与比较的数组维数相同的数组,其组成元素为0或1。
>> A=[1 2 3 5 7]B=[2 3 5 5 8]A<6A>BF=A==B A = 1 2 3 5 7 B = 2 3 5 5 8 ans = 1×5 logical 数组 1 1 1 1 0 ans = 1×5 logical 数组 0 0 0 0 0 F = 1×5 logical 数组 0 0 0 1 0在 MATLAB中数组提供了3种数组逻辑 运算符 ,即&(与)、|(或)和~(非)。逻辑运算的运算法则如下:
如果是非零元素则为真,用1表示;反之是零元素则为假,用0表示。
当两个比较量是维数相等的数组时,逐一比较两个数组相同位置的元素,并给出比较结果。最终的关系运算结果是一个与参与比较的数组维数相同的数组,其组成元素为0或1。
与运算(a&b)时,a、b全为非零,则为真,运算结果为1;或运算(ab)时,只要a、b有一个为非零,则运算结果为1;非运算(~a)时,若a为0,运算结果为1,a为非零,运算结果为0。
>> C=A&B %与 D=A|B %或 E=~B %非 C = 1×5 logical 数组 1 1 1 1 1 D = 1×5 logical 数组 1 1 1 1 1 E = 1×5 logical 数组 0 0 0 0 0compan(p):生成一个特征 多项式 为p的二维矩阵
hadamard(k):返回一个阶数为n=2k的Hadamard矩阵,只有当n能被4整除时Hadamard矩阵才存在
hankel(x):返回一个由向量x定义的 Hankel方阵。该矩阵是一个对称矩阵,其元素为h一x+j-a,第1列为向量x,反三角以下的元素为0
hankel(x,y):返回一个mXn的Hankel矩阵,它的第1列为向量x,最后一行为向量y
magic (n):返回一个nXn的魔方矩阵
pascal(n):返回一个n×n的Pascal矩阵
rosser:给出Rosser 矩阵,这是一个经典对称特征测试问题,它的大小是8×8
vander(x):返回一个Vandermonde矩阵,其元素为v,=x"',n为向量x的长度
wilkinson(n):返回一个m×n的-Wilkinson特征值测试矩阵
(1)希尔伯特矩阵
希尔伯特(Hilbert)矩阵,也称H阵,其元素为H(第i行第j列)/(i+j-1)。由于它是一个条件数差
的矩阵,所以将它用来作为试验矩阵。
关于希尔伯特矩阵的指令函数如下:
hilb(n):用于生成一个n×n的希尔伯特矩阵。
invhilb(n):用于生成一个nXn的希尔伯特矩阵的逆矩阵整数矩阵。
>> A=hilb(3)A = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 >> B=invhilb(3)B = 9 -36 30 -36 192 -180 30 -180 180(2)托普利兹(Toeplitz)矩阵
另外一个比较重要的矩阵为托普利兹(Toeplitz)矩阵,它由两个向量定义,一个行向量和一个列向量。对称的托普利兹矩阵由单一向量来定义。
关于托普利兹矩阵的指令函数如下:
toeplitz(k,r):用于生成非对称托普利兹矩阵,第1列为k,第1行为r,其余元素等于其左上角元素。
(3)范德蒙行列式
>> A=vander([1 2 3 4])A = 1 1 1 1 8 4 2 1 27 9 3 1 64 16 4 1>> B=vander([1;2;3;4])B = 1 1 1 1 8 4 2 1 27 9 3 1 64 16 4 1>> C=vander(1:.5:3)C = 1.0000 1.0000 1.0000 1.0000 1.0000 5.0625 3.3750 2.2500 1.5000 1.0000 16.0000 8.0000 4.0000 2.0000 1.0000 39.0625 15.6250 6.2500 2.5000 1.0000 81.0000 27.0000 9.0000 3.0000 1.0000C=[A B]在水平方向 合并 矩阵A和B,而表达式C=[A B]在水平方向合并矩阵A和B,而表达式C=[A;B]在竖直方向合并矩阵A和B。
>> C=toeplitz(2:5,2:2:8)C = 2 4 6 8 3 2 4 6 4 3 2 4 5 4 3 2>> a=ones(3,4) b=zeros(3,4) c=[a;b] d=[a b] a = 1 1 1 1 1 1 1 1 1 1 1 1 b = 0 0 0 0 0 0 0 0 0 0 0 0 c = 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 d = 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0如果想删除矩阵的第二行
>> A=rand(4,4)A = 0.7922 0.8491 0.7431 0.7060 0.9595 0.9340 0.3922 0.0318 0.6557 0.6787 0.6555 0.2769 0.0357 0.7577 0.1712 0.0462 >> A(2,:)=[]%删除矩阵的第二行A = 0.7922 0.8491 0.7431 0.7060 0.6557 0.6787 0.6555 0.2769 0.0357 0.7577 0.1712 0.04621.ind= find (X) :查找矩阵X中的非零元素,函数返回这些元素的单下标。
>> A=[1 3 0;3 1 0;9 2 4]A = 1 3 0 3 1 0 9 2 4 >> B=find(A)%矩阵中非零元素的下标B = 1 2 3 4 5 6 9 >> C=find(A>=1)C = 1 2 3 4 5 6 9>> D=A(A>=1)%矩阵中大于等于1的元素D = 1 3 9 3 1 2 4 >> A(find(A==0))=10%矩阵中等于0的元素改为10A = 1 3 10 3 1 10 9 2 4>> A=[1 3 0;3 1 0;9 2 4];B=sort(A);A=[1 3 0;3 1 0;9 2 4];B=sort(A);%矩阵元素按照列进行升序排序C=sort(A,2);%矩阵元素按照行进行升序排序D=sort(A,'descend');%矩阵元素按照列进行降序排序E=sort(A,2,'descend');%矩阵元素按照行进行降序排序>> BCDE=[B C;D E]BCDE = 1 1 0 0 1 3 3 2 0 0 1 3 9 3 4 2 4 9 9 3 4 3 1 0 3 2 0 3 1 0 1 1 0 9 4 2>> clear all;A=[1 3 0;3 1 0;9 2 4];B=sum(A)%矩阵中元素按照列进行求和C=sum(A,2)%矩阵中元素按照行进行求和D=cumsum (A)%矩阵中各列元素的和E=cumsum (A,2)%矩阵中各行元素的和F=sum(sum (A))%矩阵中所有元素的和B = 13 6 4 C = 4 4 15 D = 1 3 0 4 4 0 13 6 4 E = 1 4 4 3 4 4 9 11 15 F = 23>> clear all;A= magic(3) B=prod (A)%矩阵各列元素的积C=prod (A,2)%矩阵各行元素的积D=cumprod (A)%矩阵各列元素的积E=cumprod(A,2)%矩阵各行元素的积 A = 8 1 6 3 5 7 4 9 2 B = 96 45 84 C = 48 105 72 D = 8 1 6 24 5 42 96 45 84 E = 8 8 48 3 15 105 4 36 72norm 矩阵或向量范数
normest 稀疏矩阵(或大规模矩阵)的2-范数估计
rank 矩阵的秩
det 方阵的行列式
trace 方阵的迹%特征值的和等于迹
null 求基础解系(矩阵的零空间)
orth 正交规范化
rref 矩阵的行最简形(初等行变换求解线性方程组)
subspace 计算两个子空间的夹角
chol:Cholesky分解:对称正定矩阵的 Cholesky 分解
Cholesky分解在MATLAB中用函数chol()来实现,其常用的调用方式如下:
R = chol(X):其中X为对称正定矩阵,R是上三角矩阵,使得 X=R'·R。如果X是非正定的,则结果将返回出错信息。
[R,p] = chol(X):返回两个参数,并且不会返回出错信息。当X是正定矩阵时,返回的上三角矩阵R满足X=-R'·R,且p=0;当X是非正定矩阵时,返回值p是正整数,R是上三角矩阵,其阶数为p-1,且满足X(1:p-1,1:p-1)=R -R
cholinc:稀疏矩阵的不完全 Cholesky分解
lu:矩阵LU分解
luinc:稀疏矩阵的不完全LU分解
qr:正交三角分解
svd:奇异值分解
gsvd:一般奇异值分解
schur:舒尔分解
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删