当前位置:   article > 正文

向量,矩阵与数组———学习概论

向量,矩阵与数组———学习概论

2.1     向量

2.1.1向量的创建

 在命令提示符之后直接输入一个向量的格式如下:

1.直接输入法

1.向量名=[a1, a2,a3,......]=[a1   a2  a3  ......]    %采用逗号或空格符号创建行向量。

2.列向量名=[a1;a2;a3;......]  %采用分号符号创建列向量。

说明:;在后面的算例中,直接创建的向量或者矩阵语句后采用“;”结尾,表示不在命令行窗口中输出结果。

2.冒号输入法

向量名=a1:step:an

其中,a1表示第一个元素,an为末尾元素限制条件,step为变化步长;MATLAB支持任意实数步长。

3.函数法

(1)线性等分函数 linspace

A=linspace(a1,an,n)

其中,a1为首元素,an为末尾元素,n代表元素个数。

(2)对数等分函数 logspace

A=logspace(a1,an,n)

其中,a1为向量首元素的幂,an为末尾元素的幂,n为元素个数。

2.1.2 向量的算术运算

和:X1=A+B


差:X2=A-B


点积:X3=dot(A,B)


叉积:X4=cross(A,B,dim)


混合积:X5=dot(C,cross(A,B))

2.2 矩阵

2.2.1 矩阵的构造

1.简单矩阵的构造

A=[row1;row2;…;rown]

2.利用函数构造特殊函数

15c4363d4993444b931c93b9f0d6c9ba.jpg

 2.2.2 矩阵的拓展与裁剪

1.矩阵拼接

1.矩阵的直接拼接

C=[A     B]              %水平拼接

C=[A;B]              %竖直拼接

2.使用矩阵拼接函数

1018ebe8a5294fa8b4851546ee7df512.jpg

 2.赋值拓展

对于一个m×n矩阵,通过使用超出目前矩阵(数组)大小的索引数字,并对该位置元素进行赋值来完成矩阵的拓展。对于未指定的新位置,默认赋值为0。

〉〉A=magic(3)

〉〉A(4,5)=12

       A =

        8     1     6     0     0

        3     5     7     0     0

        4     9     2     0     0

        0     0     0     1     2

3.矩阵的行/列删除

要删除矩阵的某一行或者列,只要给该行或者列上赋予一个空矩阵即可。当某一索引位置上不是数字而是冒号时,表示提取该索引位置上的所有元素。

〉〉A=magic(3)

〉〉A(3,:)=[]

       A =

        8     1     6    

        3     5     7  

4.矩阵的提取

B=A([x1,x2,…],[y1,y2,…])

提取矩阵A的x1,x2,…行,提取矩阵A的y1,y2,…列。

2.2.3  矩阵下标的引用

1.全下址索引

a=A(横下标,纵下标)

2.单下标寻址

对于一个m×n矩阵若aᵢⱼ用A(k)表示,则

k=(j-1)*m+i

3.sub2ind与ind2sub

sub2ind函数可以将下标转化为线性索引,其调用格式:

ind=sub2ind(sz,row,col)

%针对大小为sz的矩阵返回由row和col指定的行列下标的对应线性索引ind

ind2sub函数可以将线性索引转换为下标,其调用格式:

[row,col]=ind2sub(sz,ind)

%返回数组[row,col],其中包含与大小为sz的矩阵的线性索引ind对应的等效行列下标

2.2.4 矩阵信息的获取

1.矩阵尺寸信息

c879c61a2fd045cfa910c43af3d7474e.jpg 2.矩阵元素的数据类型和结构信息b8e9388f526247189210565cf0e0ceff.jpg

ce1dce5d53ed4a02b9273a92537f5232.jpgb0b944fe58754af4a58470687724aa67.jpg

2.2.5 矩阵结构变化函数

fcf90c831240474db7fc5fca03bcc0f6.jpg

 2.3 稀疏矩阵

说明:MATLAB自带的数学函数,逻辑函数和引用操作均可以使用在稀疏矩阵上。

2.3.1 满矩阵与稀疏矩阵的转换:full与sparse

sparse的作用是把一个满矩阵,转化为一个稀疏矩阵,其调用的格式为:

S=sparse(A)  %将满矩阵A存为稀疏矩阵,以节省内存

S=sparse(m,n) %生成m×n的全零稀疏矩阵

S=sparse(i,j,v) %根据i,v,j,三元组生成稀疏矩阵S,S(i(k),j(k))=v(k)

S=sparse(i,j,v,m,n)  %S的大小定为m×n

说明:如果输入i,j,v为向量或者矩阵,则它们的大小必须相同。参数v,i,j中的一个参数可以为标量。

full函数可以从稀疏矩阵得到满矩阵,其调用的格式为:

A=full(S)

2.3.2  基于对角线元素创建稀疏矩阵————spdiags

我们使用spdiags函数去实现构造,其调用的格式:

S=spdiags(B,d,m,n)  %创建大小为m×n且元素在p条对角线上的输出矩阵S

其中,B是大小为min(m,n)×p的矩阵,p为飞灵对角线的数目,B的列是用于填充S对角线的值;d为长度为p的向量。

注意:如果B的列长度超过所替换的对角线,则上对角线从B列的下部获取,下对角线从B的列的上部获取。

88ee8a9ec9cc4e41bcd0e8ffd382efda.jpg

 eb9833241d9040038006c307565b95b8.jpg

 

2.3.3 从外部文件导入稀疏矩阵

spconvert函数用来导入稀疏矩阵,其调用格式:

S=spconvert(D)   %根据D的列,按照sparse函数类似方式构造S

2.4  多维数组

暂时不做介绍。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/315799
推荐阅读
相关标签
  

闽ICP备14008679号