MatLab矩阵操作一

矩阵的建立

直接输入元素:

A=[1,2,3] B=[1 2 3;4 5 6]

C=[1 3 6

2 4 8]

零矩阵:

A=zeros A为单元素矩阵

B=zeros(4) B为4*4矩阵

C=zeros(2,3)

1矩阵:ones

冒号表达式建立行向量:(1行N列矩阵)

e1:e2:e3

e1起始值 e2步长 e3结尾值

A=1:3:15

A=[1 4 7 10 13]

linspace(a,b,n)函数

a,b分别为首尾元素 n为元素个数

矩阵的操作

索引元素

A=[1 2 3

4 5 6

7 8 9]

A(2,3)是6 注意matlab中坐标从1开始

A(8)为6 matlab中矩阵按列顺序存储

find(A==6)输出为8

[m,n]=find(A==6) m=2 n=3

若有重复元素则将所有位置输出,m,n则作为1*2向量

坐标表示方法转换

sub2ind(size(A),m,n) 第一个参数为矩阵大小,m,n为行列坐标

sub2ind(size(A),2,3) 输出为8 其中size(A)实际为[3 3]

[m,n]=ind2sub(size(A),8) m=2,n=3

重排矩阵

reshape(A,m,n) 将A重新排列为m*n的矩阵若元素个数不符则不可执行

reshape(A,1,9)或reshape(A,9,1)

B=A(:) 将A转变成列矩阵

转置矩阵

B=A\' B和A则互为转置矩阵

矩阵拆分

A(m,n) 获取单个元素

A(m,:) 获取A的m行所有元素

A(:,n) n列的所有元素

A(m:n,j:k) m-n行j-k列的元素

A(m,n:end) m行n到最后列元素,若不知道行列大小情况可以使用end

A([m,n],[k,j]) 获取所有组合到的元素

删除元素

A(1)=[] 第一个元素被删除,剩余元素变为行矩阵

A(m:) 删除第m行元素 也可以直接删除某列

扩展与压缩

repmat(A,[m,n]) 将A的行复制m次,列复制n次

unique(A) 将重复元素删除

unique(A,\'rows\') 删除重复的行

---恢复内容结束---