转载:
http://jingyan.baidu.com/article/fa4125acb2a58d28ac70929d.html
matlab
矩阵常用指令
在学习《线性代数》时,常需要借助一些常用的矩阵指令,包括常用矩阵快速创建、矩阵元素提取等,请看下文。
方法/步骤
-
单位矩阵创建
在线性代数运算时,常需要单位矩阵E,在matlab中可使用eyes函数,如下所示即为其语法:
Y = eye(n)
Y = eye(m,n)
Y = eye([m n])
Y = eye(size(A))
Y = eye
Y = eye(m, n, classname)
作为示例,常用Y = eye(n)指令,比如要3x3单位矩阵,则可以如下指令:
>> Y = eye(3)
输出:
Y =
1 0 0
0 1 0
0 0 1
-
全零矩阵
在线性代数运算时,有时候需要全零矩阵,可使用zeros函数。
B = zeros(n)
B = zeros(m,n)
B = zeros([m n])
B = zeros(m,n,p,...)
B = zeros([m n p ...])
B = zeros(size(A))
Y = zeros
zeros(m, n,...,classname)
zeros([m,n,...],classname)
以上是其全部语法,常用的指令是:B = zeros(n)与 B = zeros(m,n)如下:
>> B = zeros(3)
输出:
B =
0 0 0
0 0 0
0 0 0
-
元素全为1阵
在矩阵运算时,会遇到元素全为1矩阵,此时可以借助于ones函数。
Y = ones(n)
Y = ones(m,n)
Y = ones([m n])
Y = ones(m,n,p,...)
Y = ones([m n p ...])
Y = ones(size(A))
Y = ones
ones(m, n,...,classname)
ones([m,n,...],classname)
如上是其全部语法,其中常用的还是:Y = ones(n) 与 Y = ones(m,n) 如下示例:
>> Y = ones(3)
输出:
Y =
1 1 1
1 1 1
1 1 1
-
随机矩阵
在概率分析或是数理推断时常需要借助随机矩阵,在matlab中可使用rand函数实现,其语法如下:
r = rand(n)
r = rand(m,n)
r = rand([m,n])
r = rand(m,n,p,...)
r = rand([m,n,p,...])
r = rand
r = rand(size(A))
r = rand(..., 'double')
r = rand(..., 'single')
当然,常用的指令还是: r = rand(n) 和 r = rand(m,n)
示例:
>> r = rand(3,2)
输出的是3行2列的随机矩阵:
r =
0.8147 0.9134
0.9058 0.6324
0.1270 0.0975
-
对角阵
在矩阵分析与计算时,尤其是计算矩阵的秩时,常会化简矩阵为对角阵,尤其是方阵分析。在matlab中可借助diag函数求特定矩阵的对角阵,如下示例:
>> A = [1,2,3;
4,5,6;
7,8,9];
输入的矩阵A是3x3方阵,输入如下指令:
>> diag(A)
函数输出如下图所示:
-
提取矩阵三角部分
有时候需要提取矩阵的下三角亦或是下三角元素,可以使用tril或triu提取。
输入矩阵:
>> A = [1,2,3;
4,5,6;
7,8,9];
下三角提取:
>> trilow = tril(A)
输出:
trilow =
1 0 0
4 5 0
7 8 9
上三角提取:
>> triup = triu(A)
输出:
triup =
1 2 3
0 5 6
0 0 9
-
其它
作为矩阵运算实验室,matlab提供许多矩阵运算指令例如矩阵翻转指令flipud、fliplr,矩阵重排reshape、矩阵求秩rank等,大家可以查阅帮助文件了解其语法。