四、MATLAB入门—向量和矩阵

文章目录

前言

一、数组

二、向量

三、矩阵

3.1、矩阵的创建方法

 3.2、矩阵的变换

 3.3、矩阵的运算

总结


前言

        我们知道MATLAB的全名是MATrix LABoratory,可见AMTLAB的初衷是为了矩阵运算而生的;即便是常数,也可以把它当成1*1的矩阵来看待,MATLAB也同样擅长处理常数的运算。数组与矩阵是非常相似的,向量也就是一维数组,矩阵也就是二维数组,但是在MATLAB中,数组和矩阵的运算是截然不同的,这点必须要弄清楚!


一、数组

        数组是一系列元素的组合,其在MATLAB中,外观上与矩阵毫无差异,但它们却代表了完全不同的两种变量。数组也具有行和列的概念,但数组间的运算通常上元素间的运算,而矩阵不同,矩阵是一个整体,起运算规则需按照线性代数的规则进行。数组和矩阵的运算差异主要体现在运算符上,注意是元素间的运算还是整体间的运算。


二、向量

构造向量的方法:① 直接构造法;② 增量法;③ linspace/logspace函数法;

① 直接构造法:如下图,中间用逗号或者空格都是一样的;

② 增量法:如下图,向量A是0到5,增量为1的行向量;向量B是0到6,增量为2的行向量;

  ③  linspace/logspace函数法:用linspace函数构造向量,需要指定首尾值和元素个数;基本形式是x = linspace(first,last,num),其中first,last和num分别代表首尾元素和元素个数。

        用logspace函数构造向量,需要指定首尾值和元素个数;x = logspace(first,last,num),其中首尾值大小为10^first和10^last,默认时num = 50;


三、矩阵

3.1、矩阵的创建方法

① 简单的创建方法:直接写矩阵,不同列直接用空格或者逗号隔开,不同行用分号隔开;

 ② meshgrid函数创建矩阵:

语法格式为:[X,Y] = meshgrid(x,y)          注:x和y表示行向量和列向量

                      [X,Y] = meshgrid(x)

                      [X,Y,Z] = meshgrid(x,y,z)

                      [X,Y,Z] = meshgrid(x)

 ③ 构造特殊矩阵:MATLAB提供了多个构造特殊矩阵的函数,分别有:

        ① ones :创建一个所有元素都为1的矩阵;

        ② zeros :创建一个所有元素都为0的矩阵;

        ③ eye :创建对角线为1,其余元素为0的矩阵;

        ④ accumarray :将输入矩阵的元素分配到输出矩阵中的指定位置;

        ⑤ diag :根据矢量创建对角矩阵;

        ⑥ magic :创建一个魔方矩阵,其中行、列和对角线上元素和相等;

        ⑦ rand :创建一个矩阵或者数组,其中的元素为服从均匀分布的随机数;

        ⑧ randn :创建一个矩阵或者数组,其中的元素为服从正态分布的随机数;

        ⑨ randperm :创建一个矢量(1*n的矩阵);

 ④ 聚合矩阵:聚合矩阵是通过连接一个或者多个矩阵来形成的新的矩阵。符号[]不仅是矩阵构造符号,也是MATLAB平台聚合运算符。如C = [A B]表示在水平方向上聚合矩阵A和B,C = [A;B]表示在垂直方向上聚合矩阵A和B;

⑤ 构建三维矩阵:

 3.2、矩阵的变换

① reshape函数:如reshape(M,2,6),以M矩阵为基准,按照列排列,创建一个2行6列的矩阵;注意用reshape函数生成矩阵,必须要求两个矩阵的元素数量是相同的,这里M是3行4列矩阵,共12个元素,reshape生的2行6列的矩阵也是12个元素。

 ② flip函数:矩阵翻转,可以上下翻转,也可以左右翻转;filpud是上下翻转,filplr是左右翻转。

 ③ rot函数:如rot90(M),表示将矩阵M逆时针旋转90度;

 ④ repmat函数:如repmat(A,2,3),表示复制矩阵A,行向量上复制2次,列向量上复制3次;

 ⑤ diff函数:求差值,后一位元素减去前一位元素的差值;

 3.3、矩阵的运算

        矩阵与数组运算是不相同的,数组强调的是元素间的对于运算,而矩阵是采用线性代数的运算规则来进行的,矩阵是一个整体,运算时也必须当成一个整体来进行。为了更加了解矩阵与数组之间运算的差异,可以根据运算符的不同来辨别。

数组

+

-

.*

.\

./

.^

.’

矩阵

+

-

*

\

/

^

意义

相加

相减

相乘

右除

左除

乘方

转置

       根据这个表格可以看出,数组与矩阵的运算除了加、减的符号相同外,其余的都不同,我们可以根据运算符号来辨别该变量是数组还是矩阵,同时自己在编程时也需注意,不要弄错了。

        除了矩阵的运算以外,还有一个数组内的运算,分别有:

例如v=[-5 1 5 -3],那么

        ① min(v) :求这个数组中的最小元素,返回 -5;

        ② max(v):求这个数组中的最大元素,返回  5;

        ③ sign(v):取这个数组中元素的符号,返回 -1 1 1 -1;

        ④ sum(v):求数组中元素的和,返回 -5+1+5-3 = -2;

        ⑤ abs(v):求数组中元素的绝对值,返回 5 1 5 3;

        ⑥ prod(v):求数组中元素的乘积,返回 -5*1*5*(-3)= 75;


总结

        以上就是我今天所学的内容了,主要是关于向量和矩阵的一些内容,包括了向量和矩阵在MATALB中的创建方法,矩阵的变换以及运算等,用到的函数命令较多,还需慢慢消化,大家共同加油!!!

猜你喜欢

转载自blog.csdn.net/weixin_62912626/article/details/132211561
今日推荐