Matlab线性代数基础---矩阵操作
来源:互联网 发布:开发上位机界面软件 编辑:程序博客网 时间:2024/05/21 17:45
2、矩阵的基本操作
2.1 矩阵的修改
1、矩阵的扩充:D = [A;B C] A为原来的矩阵,B C为包含要扩充的元素,D为扩充结果
2、删除行:A= [m; :] = [ ]:删除m行
3、A=[:,n]=[ ]:删除第n列
4、A(m,n)=a,对m行n列的元素进行赋值为a。
5、A(m, :)=[a,b……]:对m行进行赋值。
6、A(:, n)=[a,b……]:对n列进行赋值。
实例:
>> A = magic(5A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9>> A(:,4:5)=[]%%对4行5行进行赋值为空,即为删除4、5行。A = 17 24 1 23 5 7 4 6 13 10 12 19 11 18 25
2.矩阵的拼接:cat()、vercat()、horzcat();
调用格式:
C = cat(dim,A ,B):参数dim为连接方向,dim的选值:
dim = 1,垂直方向上拼接矩阵;
dim = 2,水平方向上拼接矩阵;
dim = 3, 生成三维矩阵。
C = horzcat(A1,A2,A3,……),水平方向拼接多个矩阵A1,A2……,此时参数中的矩阵必须具有相同的行数。
C = vercat(A1,A2,A3,……),竖直方向拼接多个矩阵A1,A2……,此时参数中的矩阵必须具有相同的列数。
矩阵拼接的实例:
>> A = magic(3);B = pascal(3);C = cat(3,A,B);D = vertcat(A,B);>> E = horzcat(A,B);>> CC(:,:,1) = 8 1 6 3 5 7 4 9 2C(:,:,2) = 1 1 1 1 2 3 1 3 6>> DD = 8 1 6 3 5 7 4 9 2 1 1 1 1 2 3 1 3 6>> EE = 8 1 6 1 1 1 3 5 7 1 2 3 4 9 2 1 3 6>>
2.3矩阵的变向:
rot90(A):实现矩阵A的逆矩阵的90°;
rot90(A,k);实现矩阵A逆时针旋转90°的k倍;
filplf(A):实现A矩阵的左右翻转;
flipud(A):实现A矩阵的上下翻转。
旋转的实例:
>> AA = 8 1 6 3 5 7 4 9 2>> rot90(A)ans = 6 7 2 1 5 9 8 3 4>> flipud(A)ans = 4 9 2 3 5 7 8 1 6>>
2.4矩阵的抽取:主要是实现对对角元素和上下三角阵的抽取。对角矩阵和三角矩阵的抽取调用格式为:
X = diag(V,k);其中V是一个向量,k为相对于矩阵X的对角线的偏移,K大于1,表示在对角线以上(右上)反之:k为负数,在主对角线左下。当k=0,表示对v赋值为X的主对角线。
实例:
X = diag(v,k)的运用实例:以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。例:>> v=[1 2 3];>> x=diag(v,-1)x = 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0>> X = diag([1,1,1],0)X = 1 0 0 0 1 0 0 0 1>>
矩阵的抽取tril()函数
L =tril(X):返回X矩阵的下三角部分,其余部分以0补全;
L = tril(X,k):返回X矩阵的第k 条对角线以下的元素,其余补全0;k=0为表示为主对角线,k<0为左下,k>0为右上。
L =triu(X):返回矩阵X的上三角部分。
L = triu(X,k):返回X矩阵的第k 条对角线以上的元素,其余补全0;k=0为表示为主对角线,k<0为左下,k>0为右上。
实例:
>> tril(ones(4,4),-1)ans = 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0>> triu(ones(4,4),-1)ans = 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1>>
2.5矩阵块操作:
矩阵的分块操作调用格式:
B =repmat(A,m,n)或者B = repmat(A,[m,n]):产生大的矩阵B,对矩阵A 这个块进行mxn的合成:最后生成的B的A的行列数乘以mxn的分别积
例子:A为2x2,生成mxn为2x3的矩阵,结果为4x9列。
>>B=repmat( [1 2;3 4],2,3)%A为2x2,生成mxn为2x3的矩阵,结果为4x9列。B = 1 2 1 2 1 23 4 3 4 3 41 2 1 2 1 23 4 3 4 3 4
B =repmat(A,[m,n,p]):A为矩阵,m,n,p分别是生成m行、n列、p维的矩阵
例子:
B = repmat(eye(2),[2,1,2])B(:,:,1) = 1 0 0 1 1 0 0 1B(:,:,2) = 1 0 0 1 1 0 0 1>>
另外还有一个块操作函数:blkdiag(a,b,c,d……),把a,b,c,d多个矩阵作为对象块,产生新的矩阵。
3.6、矩阵的转置:A’
例子:
>> a = [1,2,3;4,5,6]a = 1 2 3 4 5 6>> a'ans = 1 4 2 5 3 6
从例子中看得出:矩阵转置就是行变换为列,列变换为行。
3.7、矩阵的尺寸改变
reshape(B,m,n, p):B为待2重置的矩阵,m,n,p为新建的行、列、页数
reshape(B,……[ ] ,……):B为待重置的数组,【】为被置空的列或者行,其中【】x行(列)等于B的总元素数。
注意,改变矩阵的尺寸,但是矩阵的总元素数不变:sum(size(B))=m+n+p。
实例:
>> A = [1 2 3 4;7 8 9 6;4 5 7 9;1 5 7 9]A = 1 2 3 4 7 8 9 6 4 5 7 9 1 5 7 9>> b= reshape(A,2,8)b = 1 4 2 5 3 7 4 9 7 1 8 5 9 7 6 9>>
- Matlab线性代数基础---矩阵操作
- Matlab的线性代数矩阵基础
- matlab-线性代数 矩阵换行
- numpy线性代数基础 - Python和MATLAB矩阵处理的不同
- 线性代数1-矩阵基础
- matlab-线性代数 创建对角矩阵
- matlab-线性代数 创建范德蒙矩阵
- matlab-线性代数 合同矩阵判断
- matlab-线性代数 矩阵换列
- matlab-线性代数 矩阵的拆分
- Matlab与线性代数 -- 单位矩阵
- Matlab与线性代数 -- 零矩阵
- Matlab与线性代数 -- 魔方矩阵
- Matlab与线性代数 -- Pascal矩阵
- Matlab与线性代数 -- Hilbert矩阵
- Matlab与线性代数 -- 逆矩阵
- Matlab与线性代数 -- 对角矩阵
- Matlab与线性代数 -- 矩阵的左右翻转、上下翻转和矩阵的逆时针旋转90操作
- NOIP 冲刺之manacher模板
- 数学建模初步计划
- Jquery使用Ajax构建方法得不到返回值的问题
- 大一的总结
- Oracle数据导入到Hive数据库的操作方法
- Matlab线性代数基础---矩阵操作
- printf("\033[1;33m Hello World. \033[0m \n");有趣的串口之超级终端的玩法
- Java面试题集(71-85)
- 数学之美番外篇:平凡而又神奇的贝叶斯方法
- 点菜系统数据流图
- 欢迎使用CSDN-markdown编辑器
- linux驱动开发
- Django学习笔记(一)--安装与创建工程
- Java面试题集(86-115)