Matlab从入门到精通(六)--矩阵基本运算

1、行向量的定义

rowvec = [1.2 3 56];

2、列向量的定义

colvec = [1.2;3;56];

3、逐个元素的分配矩阵

B(1,1) = 1 ;

B(1,2) = 2 ;

B(2,1) = 3 ;

B(2,2) = 4 ;

B =

     1     2

     3     4

注意:矩阵的下标从1开始计数

4、矩阵的输入

直接输入矩阵时候,矩阵元素用“空格”或者“逗号”隔开,矩阵行用“分号”隔离,整个矩阵放在方括号“[         ]”内.不必事先对矩阵维数做任何说明.

例如:

A = [1,2,3;4,5,6;7,8,9]

或者

A = [1 2 3;4 5 6;7 8 9]

还可以分行输入:

A=[1 2 3;

        4 5 6;

          7 8 9]

注意:

         表达符号一定要在英文状态下输入.MATLAB对矩阵大小写是敏感的.如果不用clear指令清楚,或者重新赋值,那么该矩阵就会一直保存在工作空间中,直到指令窗(Command Window)关闭.

5、矩阵、零矩阵和单位矩阵

1矩阵的所有元素全为1,零矩阵的所有元素全为零.

ones(n)                       %建立一个n×n的1矩阵

ones(m,n,……,p)    %建立一个m×n×……×p的1矩阵

ones(size(A))   %建立一个和矩阵A同样大小的1矩阵

zeros(n)                      %建立一个n×n的0矩阵

zeros(m,n,……,p)   %建立一个m×n×……×p的0矩阵

zeros(size(A))  %建立一个和矩阵A同样大小的0矩阵

eye(n)          %建立一个n×n的单位矩阵

eye(m,n)            %建立一个m×n的单位矩阵

eye(size(A))        %建立一个和矩阵A同样大小的单位矩阵

例如:输入OneMatrix = ones(2,3,2)

则结果为:

OneMatrix(:,:,1) =

     1     1     1

     1     1     1

OneMatrix(:,:,2) =

     1     1     1

     1     1     1

注意:eye命令只能用来建立二维矩阵

6、随机数和随机矩阵

rand                             %产生在0~1之间均匀分布的随机数;每调用一次给一个新的数值.

rand + i*rand           %产生一个复数随机数

rand(n)                        %产生一个n×n的矩阵,其元素均为0~1之间均匀分布的随机数.

rand(m,n,……,p)    %产生一个m×n×……×p的矩阵,其元素均为0~1之间均匀分布的随机数.

randn                          %产生零均值、单位方差的正太分布随机数

randn(n)                     %产生一个n×n的矩阵,其元素均为零均值、单位方差的正太分布随机数.

randn(m,n,……,p)           %产生一个m×n×……×p的矩阵, 其元素均为零均值、单位方差的正太分布随机数.

7、随机数种子

rand(‘state’)                       %返回一个有35个元素的向量,其中包含随机发生器的当前状态.

rand(‘state’,s)                   %设置随机种子发生器的状态为s

rand(‘state’,0)                   %设置随机种子发生器为它的原始状态

rand(‘state’,j)                    %设置随机种子发生器为它的第j种子状态,j为整数

rand('state',sum(100*clock));          %使用clock命令,使得随机种子发生器在每个不同的时刻都设置为不同的状态.

rand(‘state’,arg)                        %使用MATLAB中的随机种子发生器.

randn(‘state’,)                   %返回一个有两个元素的向量,其中包含正态随机种子发生器的状态

randn(‘state’,arg)             %根据arg设置正态随机种子发生器,见rand.

例如

astate = rand('state'); astate(1:5)

ans =

    0.8651

    0.5121

    0.9021

    0.8186

0.6267

说明:astate(1:5)表示列出状态向量(35个元素)中的前5个元素的值

8、从已存在的向量中产生新的矩阵(一)

diag(A)               %生成一个由矩阵A主对角线元素组成的列向量,主对角线总是从矩阵左上角开始,对于方阵来说它结束于矩阵的右下角.

diag(x)               %x为一个n维向量.生成一个n维方阵,它的主对角线元素取自向量x,其余元素的值都为零.

diag(A,k)           %生成一个由矩阵A第k条对角线元素组成的列向量。k=0为主对角线;K<0为主对角线下第条对角线;k>0为主对角线上第K条对角线.

dialog(x,k)         %生成一个(n +)*(n+)维的矩阵,该矩阵的第k条对角线元素取自x,其余元素为0.(n为x的维数)

例一:

A =

     1     2     3

     4     5     6

     7     8     9

diag(A)=

1

     5

     9

例二:

x = [1 2 3];

diag(x) =

     1     0     0

     0     2     0

     0     0     3

例三:(A为例一中的A)

diag(A,0) = 

     1

     5

     9

diag(A,1) =

     2

     6

diag(A,-1) =

     4

     8

例四:(x为例二中的x)

diag(x,1) =

     0     1     0     0

     0     0     2     0

     0     0     0     3

     0     0     0     0

diag(x,-2) =

     0     0     0     0     0

     0     0     0     0     0

     1     0     0     0     0

     0     2     0     0     0

     0     0     3     0     0

9、从已存在的矩阵中生成新的矩阵(二)

triu(A)                %生成一个和A同样大小的上三角矩阵。该矩阵的主对角线及以上元素取自A中的相应元素,其余元素都为0.

triu(A,k)             %生成一个和A同样大小的上三角矩阵。该矩阵的第k条对角线及以上元素取自A中的相应元素,其余元素都为0.命令triu(A,0)等价于triu(A).

tril(A)                 %生成一个和A同样大小的下三角矩阵。该矩阵的主对角线及以下元素取自A中的相应元素,其余元素都为0.

tril(A,k)              %生成一个和A同样大小的下三角矩阵。该矩阵的第k条对角线及以下元素取自A中的相应元素,其余元素都为0.命令tril(A,0)等价于tril(A).

 

对于每一个方阵A都有以下关系:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值