矩阵是一个二维的数组,想要在matlab创建矩阵,同样是使用中括号,同一行的元素用逗号(,)隔开,与下一行的元素之间用分号隔开,比如,我们想要创建一个这样的矩阵:
a = [-1 6
7 11]
在matlab中可以这样表示:
a = [-1,6;7,11]
运行实例如下:
如果有两个矩阵的行列数均相等,那么他们可以进行相加减,比如:
当然,我们也可以对矩阵进行行列互换,同样也是用一个单引号,例如:
如果矩阵中有复数,那么上面的转置操作会自动计算矩阵中复数的共轭复数,比如:
如果想要只转置矩阵,而不计算共轭值,只需在单引号前面加个.,变成.',例如:
我们可以用和向量同样的符号(.*)进行矩阵内的元素相乘,而不是矩阵相乘,例如:
那如果我们要求矩阵相乘我们该怎么算呢,很简单,只需要把.去掉就行了
需要注意的是,在matlab里面进行矩阵的计算依旧需要遵守数学规则,也就是如果我们想求矩阵相乘,那么就必须保证这两个矩阵其中一个矩阵的行数等于另一个矩阵的列数,反之一样,比如:
此时,由于两个矩阵的行列数不等,如果进行元素的相乘就会报错,比如:
跟向量一样,matlab同样也提供了方法方便我们对矩阵进行处理,当然,从你学的线性代数的角度上面来说,这似乎不太友好……
下面是对数组各元素进行加法计算:
同样的,可以用于除法,只是要记得加个.,不然会被误认为是两个矩阵进行除法,就像这样:
你会注意到你的键盘上的回车键上面有个\的符号,他其实跟/是一样的,只是会互换除数和被除数(等价于2./a),计算结果如下:
理论上来讲,你能想到的任何数学操作都可以在matlab中用在数组上,只是一定要记得加个(.)!
关于特殊类型的矩阵
对于一个矩阵,如果他的对角线上的元素全部为1,其他都为0的话我们将其称为单位矩阵,在matlab中,我们可以用eye(m,n)命令创建这个矩阵,比如:
我们甚至可以创建一个全为0的矩阵或全为1的矩阵,分别使用zeros(m,n)和ones(m,n)命令,这里就不举例子了。
引用矩阵中的元素
在matlab中,对于一个矩阵,他的某一行,某一列,或者某一个元素都是可以被单独提取出来的,对于下面这个矩阵:
我们可以用a(m,n)方法提取出m行n列的元素,比如:
如果我们想要某一列的全部元素,可以用a(:,n)来提取,比如:
那如果是某一行的呢,就是a(n,:),比如:
如果我们想要第i到j列的元素,我们可以用a(:,i:j)来提取,比如:
我们甚至可以提取某一块区域的元素,本质上就是要某一行到另一行同时某一列到另一列的元素,例子如下:
我们也可以更改某一元素的值,比如:
假如说我们想要删除某一行的元素,可以这样:
列同理
matlab支持对矩阵进行行或列的互换,比如,此时是这样:
当我进行某些操作以后:
同样的,可以用于列:
我们也可以通过这种方法多加一行(或列)矩阵内的指定行(或列):
好啦,今天就到这吧