利用暑假的时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。
素材来源“数学建模清风”
特此说明:本博客的内容只在于总结在使用matlab中的一些小技巧,并非教程,若想系统的学习MATLAB,也可以移步去链接中的视频,观看学习。也欢迎各位在留言区补充,纠错,讨论。
原素材和学习视频地址:MATLAB教程新手入门篇(上部分)(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili
矩阵相关的知识点#2
1 矩阵的创建
1.1 直接输入
例如a=[1 2 3;4 5 6]或者a=[1,2,3;4,5,6],这里的【空格】和,起到的都是一个作用。这里生成的就是2行3列的矩阵,以此类推。
1.2 函数创建法
1.2.1 zeros、ones、eye
这三个函数分别用来创建全为0的矩阵、全为1的矩阵和单位矩阵
以zeros函数为例:
1、zeros(n)可以生成一个n行n列全为零的矩阵
2、zeros(m,n)可以生成一个m行n列全为零的矩阵
ones和eye函数都是同样的用法
1.2.2 rand、randi和randn
这三个函数分别用来创建均匀分布的随机数、均匀分布的随机整数和标准正态分布的随机数
rand:
以rand函数为例:
1、rand(n)可以生成一个n行n列随机数矩阵
2、rand(m,n)可以生成一个m行n列随机数矩阵
randi:
randi是用来创建均匀分布的随机整数,使用方法为:randi([nmin,nmax],m,n)创建一个m行n列的随机数矩阵,该随机数矩阵中的每个元素都是从区间[nmin,nmax]内随机抽取的整数。
另外,如果最小数nmin=1,则可省略,可变为randi([nmax,m,n])的形式。
若m=n,则可变为randi([nmin,nmax],n)
randn:
randn函数是用来创建标准正态分布的随机数,其使用方法和rand类似
标准正态分布:以0为均值,以1为标准差的正态分布,记为N(0,1)
1.2.3 diag和blkdiag
diag函数:
用法一:用于创建对角矩阵或者获取矩阵的对角元素——(diagonal,对角)
diag(v,k),v-是向量,要用中括号[],k表示的是第几条对角线。例如:
用法二: 用于获取矩阵A的元素。
diag(A,k),A表示目标矩阵,k表示第几条对角线,例如:
blkdiag函数:
用来创建分块对角矩阵,分块对角矩阵是相对于常规的对角矩阵而言的,常规的对角矩阵沿对角线具有单个元素,而分块矩阵的对角线的元素是矩阵。其他与diag函数并无太大差别,例如:
2 矩阵的引用
与向量的引用相似,但是不同的是,矩阵是多维的,需要再索引一次。例如:
end在矩阵中也是适用的
2.1 size函数
size函数的用法和向量中length和numel函数的用法相似,都是用来计算矩阵(向量)中元素的个数的,size函数有两种常用的用法。
用法一:直接返还所有的行和列信息,如果只有一个返回值,比如B=size(A),那么B就是一个向量,如果有两个返回值的话,例如[r,c]=size(A),那么就会输出r=4,c=5.
用法二:指定行列返还信息,1表示行,2表示列
size只能用于矩阵的行列元素,如果需要知道矩阵中某一个向量的具体元素,还是需要用到length和numel。
length和numel用于矩阵的话,length只会返还行和列中的较大值,numel会返还矩阵中元素的总数
2.2 索引矩阵中m行或n列的所有元素
A(:,n) 表示矩阵A的第n列的所有元素
A(m,:) 表示矩阵A的第m行的所有元素
3 矩阵的线性索引
前面的索引都是对矩阵的双下标进行索引,即同时进行行索引和列索引。而对单个下标进行索引的方法就是线性索引。
例如:
另外A(:)命令将A中的所有元素按照线性索引的顺序重构成一个列向量。