MATLAB——第二天 矩阵

写在前面

我们都知道,在没有持久化存储的情况下,大部分的数据是存储在数组里面的,

也就是对应于数学中的矩阵,

对于一个矩阵而已,最重要的不外乎:赋值,操作,取值

初始化矩阵

在MATLAB里给一个矩阵赋值的方法有很多,有直接赋值法、借助函数库的间接赋值法,

有时候还要生成一个在某个区间内的随机矩阵

一、直接赋值法:

>> A =[1,2,3,4]

A =

     1     2     3     4

>> A= [1:1:4]

A =

     1     2     3     4

>> A=[1;2;3;4]

A =

     1
     2
     3
     4

>> A=[1:4;2:5]

A =

     1     2     3     4
     2     3     4     5

>> B=A'

B =

     1     2
     2     3
     3     4
     4     5

二、间接赋值法

生成一个平均分布的矩阵

>> A=linspace(1,3,6)

A =

    1.0000    1.4000    1.8000    2.2000    2.6000    3.0000

生成一个全是0的矩阵

>> A=zeros(2,3)

A =

     0     0     0
     0     0     0

生成一个单位矩阵

>> A=eye(3,3)

A =

     1     0     0
     0     1     0
     0     0     1

生成一个全是1的矩阵

>> A=ones(2,3)

A =

     1     1     1
     1     1     1

生成一个n阶魔阵

>> A=magic(4)

A =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

三、在某个区间内生成随机矩阵

首先要知道  

A= ran(n,m)    可以生成一个在区间(0,1) n*m的小数矩阵

>> A=rand(3,4)

A =

    0.9572    0.1419    0.7922    0.0357
    0.4854    0.4218    0.9595    0.8491
    0.8003    0.9157    0.6557    0.9340

然后    A=rand(n,n)*k   (k是大于0的)    
生成n*m的小数矩阵的值在     (0,k)

>> rand(3)*5

ans =

    4.1060    0.8450    3.2387
    0.0770    3.2456    2.2546
    0.2151    3.6586    2.7350

然后在加上一个  d

就是    A=rand(n,n)*k+d
    生成n*m的小数矩阵的值就在    
(d,k+d)上了

>> A=rand(3)*5+1

A =

    3.8060    1.9522    5.9082
    5.4093    2.8446    1.7820
    4.3459    3.3036    5.2776

当然,如果只要整数,那么也行, 用  fix函数

A=fix(rand(n,n)*k)+d  当然因为中间取整了,所以整数的区间会缩小1,生成的整数矩阵区间
 (d,k-1+d)

>>  fix(rand(3)*5)+1

ans =

     4     3     3
     2     3     2
     1     1     2
因此,就可以抽象出两个生成随机矩阵的方法

生成在区间(a,b)上的整数

function A = randInter( min,max,n,m )

A=fix(rand(n,m)*(max-min+1))+min;

end

生成在区间(a,b)上小数

function A = randFloat( min,max,n,m)

A=rand(n,m)*(max-min)+min;

end

矩阵操作

①常见的操作有:    矩阵与常数的乘除            矩阵与矩阵的加减乘除次幂

需要注意的是:‘ * ’
 和 ‘  .* ’是不一样的,‘ / ‘和
‘ ./ ’     ‘^’和‘.^‘是不一样的   

A =

     3     2     3
     4     1     2
     2     4     3

>> B=randInter(2,6,3,3)

B =

     4     5     3
     5     4     2
     4     6     2

>> A*B

ans =

    34    41    19
    29    36    18
    40    44    20

>> A.*B

ans =

    12    10     9
    20     4     4
     8    24     6

②向量x、矩阵A大小的测试与查找

●whose命令查看当前工作内变量信息

●length(x)返回向量x的长度

●s=size(A)返回矩阵的大小,s(1)表示A的行数,s(2)表示A的列数。

●[r,c]=size(A), A的行数存于变量,列数存于变量c。

● s=size(A, n)返回矩阵A的第n维的大小。

●length(A)返回A的行数与列数中较大者。

●ndims(A)返回矩阵的维数。

● i=find(条件表达式)或者[r,c]=find(条件表达式),返回表达式为真的元素下标。

此处不再粘代码。。。。

截取矩阵

>> A=[1:4;2:5;3:6;4:7]

A =

     1     2     3     4
     2     3     4     5
     3     4     5     6
     4     5     6     7

①精确取矩阵中的某一个元素

>> A(4,4)

ans =

     7

②取矩阵中的某一行

取第四行

>> A(4,:)

ans =

     4     5     6     7

③取矩阵中的某一列

取第四列

>> A(:,4)

ans =

     4
     5
     6
     7

④取矩阵中的某些行列

取第1,2行和第3,4列的交汇部分

>> A(1:2,3:4)

ans =

     3     4
     4     5

⑤逆序取某一行

第二行放在第一行的前面

>> A(2:-1:1,:)

ans =

     2     3     4     5
     1     2     3     4

⑥逆序取某一列

取第四列放在第三列的前面

>> A(:,4:-1:3)

ans =

     4     3
     5     4
     6     5
     7     6

⑦删除某几行

删除前两行

>> A(1:2,:)=[]

A =

     3     4     5     6
     4     5     6     7

⑧删除某几列

删除前两列

>> A(:,1:2)=[]

A =

     3     4
     4     5
     5     6
     6     7

⑨同时删除行和列

删除前两行,前两列

>> B(3:4,3:4)

ans =

     5     6
     6     7

时间: 2024-11-05 16:05:05

MATLAB——第二天 矩阵的相关文章

CST.Studio.Suite.2016.SP1 电磁仿真+Mathworks.Matlab.R2016a.X64 矩阵实验室

Mathworks.Matlab.R2016a.X64 矩阵实验室 PV.Desktop.V14.0.0.1 石油化工静设备计算机辅助设计桌面系统 Agilent.Keysight.ICCAP.2016.01 Agilent.Keysight.Genesys.2015.08 Agilent.Keysight.WaferPro.Express.2015.01 Agilent.Keysight.Model.Quality(MQA).2016.01 诚信合作,质量保证:@@@@@@@@@@@@@@@@

Matlab随笔之矩阵入门知识

直接输入法创建矩阵 – 矩阵的所有元素必须放在方括号“[ ]”内: – 矩阵列元素之间必须用逗号“,”或空格隔开,每行必须用“;”隔开 – 矩阵元素可以是任何不含未定义变量的表达式.可以是实数,或者是复数. – 例a=[1,2;3,4] 或 a=[2 1+3j;sqrt(4) 5] 创建基本矩阵的函数 – 空阵 [ ] — matlab允许输入空阵,当一项操作无结果时,返回空阵 – ones(N,M) —全部元素都为1的矩阵 – zeros(N,M) —全部元素都为0的矩阵 – rand(N,M

Matlab permute( )函数 & 矩阵A 和矩阵A' 的差别 & imresize( )函数

Matlab  图像处理 Day9: 1.permute( ): % permute 函数功能是重新排列数组,可以交换数组的维数 % 对于二维数组而言.可以利用 permute 函数对矩阵进行转置 Sample: 2.矩阵A 和矩阵A'之间的差别: A' 是举证 A 的转置矩阵. 3.imresize( ): % 函数用于缩放处理 % 其一般形式为  <i> B = imresize(A, m) B矩阵的长宽变成A矩阵的m倍,若 m > 1 ,则 B 为 A 的放大图像 若 m <

Matlab中求解矩阵的奇异值

1.Matlab中求解矩阵的奇异值用svd函数和svds函数 2.实例 >> A = [1,2,3;4,5,6;7,8,9] A = 1 2 3 4 5 6 7 8 9 >> svd(A) ans = 16.8481 1.0684 0.0000 >> svds(A) ans = 16.8481 1.0684 0.0000 再分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn

matlab学习笔记第二章——矩阵

1.我们可以在数组上进行左除和右除.这时数组元素与元素匹配相除,因此两数组必须等大.例如,我们用“./”让MATLAB进行数组右除: >> A = [2 4 6 8]; B = [2 2 3 1]; >> C = A ./ B C = 1 2 2 8 2.要创建n×n的单位矩阵,输入MATLAB命令:eye(n).要创建n×n的零矩阵,我们输入zeros(n).我们还可以输入zeros(m, n)创建m×n的矩阵,当然也完全可以创建整个元素都为1的矩阵.可能出乎你意外,你只需输入o

Matlab中关于矩阵维度的解释

a = ???? 1???? 1???? 1???? 1???? 1 ???? 1???? 1???? 1???? 1???? 1 ???? 1???? 1???? 1???? 1???? 1 就上面这样一个矩阵而言,它有3行5列 第一维:行维,即行向,也即垂直方向,维数为3,就矩阵a而言 第二维:列维,即列向,也即水平方向,维数为5 第三维:页,类似课本的一页一页,每一页是个平面,可以放一个类似a的二维矩阵 第四维:没有其他名字了,就是一个抽象的概念 第五维:类似第四维, .. 假设我利用on

matlab fprintf输出矩阵

a=[1,2,3;4,5,6]  是一个2×3矩阵1 2 34 5 6 fid=fopen('d:\chr.txt','wt')  本命令用法网上可以查到,帮助文件里讲的也很清楚 fprintf(fid,'%8.4f %8.3f %6.2f\n',a')     输出矩阵 fclose(fid)   关闭文件 讲一下fprintf命令中每一项的含义: fid    函数句柄,代表之前打开的文件'%8.4f %8.3f %6.2f\n'      输出格式,具体如下:        1.%8.4f

matlab遇到问题-矩阵索引值超维问题

Index exceeds matrix dimensions. Index exceeds matrix dimensions. Error in igaPlateTensionxihua (line 281) dKdP(sctrB,sctrB,e)= dKdP(sctrB,sctrB,e)+eKdK(jacob,dPdy([leftlownode:leftlownode+2,leftlownode+19:leftlownode+21],[2*e-1:2*e]),dRdx,nn,C,J2,wt

Matlab 如何输入矩阵

A=[1 2 3;4 5 6;7 8 9],每行之间用分号隔开 也可以用循环控制输入 n=input('请输入矩阵阶数:') for i=1:n for j=1:n a(i,j)=input('请输入矩阵元素:'); end end a