关于矩阵的常用Matlab操作

矩阵

由m行n列构成的数组称为(m×n)阶矩阵。

用"[]"方括号定义矩阵;

其中方括号内","逗号或" "空格号分隔矩阵列数值;

";"分号或"Enter"回车键分隔矩阵行数值。

例:a=[a11 a12 a13;a21 a22 a23]或a=[a11,a12,a13;a21,a22,a23]定义了一个2*3阶矩阵a。

aij可以为数值、变量、表达式或字符串,如为数值与变量得先赋值,表达式和变量可以以任何组合形式出现,字符串须每一行中的字母个数相等 ,调用时缺省状态按行顺序取字母,如a(1)为第一行第一个字母。

常用函数如下:

函数命令

说明

size(a)

[d1,d2,d3,..]=size(a)

求矩阵的大小,对m*n二维矩阵,第一个为行数m,第二个为列数n;

对多维矩阵,第N个为矩阵第N维的长度。

cat(k,a,b)

矩阵合并,运行a = magic(3)

             b = pascal(3)

             c = cat(4,a,b)

改4为3或2或1,自己体会合并后的效果。

k=1,合并后形如 [a;b],行添加矩阵(要求a,b的列数相等才能合并);

k=2,合并后形如[a,b],列添加矩阵(要求a,b的行数相等才能合并),以此类推,n维的矩阵合并,要求n-1维维数相等才可以)。

fliplr(a)

矩阵左右翻转

flipud(a)

矩阵上下翻转

rot90(a)

rot90(a,k)

矩阵逆时针旋转90度(把你的头顺时针旋转90看原数就可以知道结果了,^-^)

k参数定义为逆时针旋转90*k度。

flipdim(a,k)

矩阵对应维数数值翻转,如k=1时,行(上下)翻转,k=2时,列(左右)翻转。

tril(a)

tril(a,k)

矩阵的下三角部分(包括对角线元素),对应k=0时的取值数。

k参数设置为正负数值对应对角线向上或向下移动k行划分下三角元素。

triu(a)

tril(a,k)

矩阵的上三角部分(包括对角线元素),对应k=0时的取值数。

k参数设置为正负数值对应对角线向上或向下移动k行划分上三角元素。

diag(a)

diag(a,k)

生成对角矩阵或取出对角元素,对应k=0时的取值数。

k参数设置为正负数值对应对角线向上或向下移动k行取对角元素或生成对角矩阵。

repmat(a,m,n)

矩阵复制,把矩阵a作为一个单位计算,复制成m*n的矩阵,其每一元素都含一个矩阵a,实际结果为一个size(a,1)*m行,size(a,2)*n列的矩阵。

w=meshgrid(s,t)

[u,v]=meshgrid(s,t)

生成行m=size(t,1)*size(t,2),列n=size(s,1)*size(s,2))阶的两个矩阵。其中u为按行顺序取s的n个矩阵元数,按列排列重复m行,v为按列顺序取t的m个矩阵元数 ,按行排列重复n列。只生成一个矩阵时,w=u。

eye(a)

eye(a,k)

生成a阶单位方阵

k参数设置为生成a×k阶单位矩阵,即生成a阶单位方阵后,取前k列,不足补0。

ones(a)

ones(a,k)

生成a阶全1方阵

k参数设置生成a×k阶全1矩阵。

zeros(a)

zeros(a,k)

生成a阶全0方阵

k参数设置生成a×k阶全0矩阵。

inv(a)

生成a的逆矩阵

你可能感兴趣的:(matlab,矩阵,Matrix)