MATLAB数组相关

Posted sonny-xby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB数组相关相关的知识,希望对你有一定的参考价值。

0 前言

  学习了很多程序语言,在各种语言之间跳来跳去,有时候总是弄混。

  在网上找相关内容的时候,发现支零破碎,搞一段代码需要东找找西凑凑才能齐全,网上系统成掌的资料找起来还是有点吃力。

  “山不过来我过去”,将数组相关的内容再整理一遍,之后根据所用一一补全,作为系统学习、后期查看的资料。

1.引用来源

  MathWorks:https://ww2.mathworks.cn/help/matlab/learn_matlab/matrices-and-arrays.html

2.正文

  矩阵是按行和列排列的数据元素的二维矩阵数组,数组则是单行或者单列数据,元素可以是数字、逻辑值、日期和时间、字符串或其他数据类型等。

2.1  数组的创建

(1)已知数组内元素的创建

  每行的元素用逗号(,)或者空格分隔;包含多行数据则使用分号分隔各行;

a=[1,2,3; 3 4 5; 5 6 7];

技术图片

 

 

   元素可以用函数、特定表示符建立

B=[pi,2*pi,exp(1),3,2^3]

技术图片

 

 

 

 (2)未知数组内元素的创建

   MATLAB不用事先定义数组的大小,可以自己动态增加,

a=[]

技术图片

 

 

  对指定行比如第m行赋值:a(m,:)=[2 4 6],例如:

a(2,:)=[2 4 6]

技术图片

 

(3)特定类型的数组或矩阵

  ones 生成元素全部为1 的矩阵,括号内元素值行、列的个数

o=ones(3,3)

技术图片

  zeros生成元素全部为0 的矩阵,括号内元素值行、列的个数

 z=zeros(3,3)

技术图片

  rand 生成元素为随机数的矩阵,括号内元素值行、列的个数

r=rand(3,3)

技术图片

  这类数组或矩阵还有如下,其调用格式同上,不再赘述

  eye函数:产生对角线为1的矩阵。当矩阵为方阵时,得到一个单位矩阵。

  randn函数:产生均值为0,方差为1的标准正态分布的随机矩阵。

(4)冒号的使用

  冒号的使用:创建连续且按一定增量(默认为1)均匀分布的矩阵

如:

A = 0:2:10

技术图片

 

 

  还可以按非整数值递增或递减,递减则在增量的位置加负号(-)。

  如果增量值不能均分指定的范围,MATLAB 会在超出范围之前在可以达到的最后一个值处自动结束序列。

A = 2.1:-0.2:1

技术图片

 

 

(5)定数创建

  定数线性采样法

E=linspace(10,20,6)

技术图片

  定数对数采样法

A=logspace(1,5,3)

技术图片

2.2 数组运算

(1)常用运算符直接进行运算

  相加、相减,需要矩阵的维度一致。

A=[2 4 6 8;10 12 14 16;18 20 22 24;26 28 30 32];
B=A+A
C=B-A

技术图片

(2)需要带符号的运算

  转置

A=[2 4 6 8;10 12 14 16;18 20 22 24;26 28 30 32];
A‘

技术图片

 

 

 技术图片

  相乘:可以乘一个常数,也可以乘一个矩阵(矩阵需要注意维度);如果将矩阵中元素进行元素级相乘而不是矩阵乘法,可以在前面加(.)

技术图片

技术图片

  相除:两矩阵相除需要加(.),例如:A./A,

技术图片

 

 

 

  求逆,必须是方阵,也必须是可逆矩阵才可以计算,否则会提示“警告: 矩阵接近奇异值,或者缩放错误。结果可能不准确。RCOND =  3.265362e-19。 

inv(A)

2.3 其他操作

(1)串联矩阵

  串联是连接数组以便形成更大数组的过程。实际上,第一个数组是通过将其各个元素串联起来而构成的。成对的方括号 [] 即为串联运算符。

 

  例如(a和r为前文生成的数组或矩阵),逗号分隔生成并排的,分号分隔生成多行的

A=[a,r]

技术图片

 

 

 

 A=[a;r]

技术图片

 

 

 

(2)复数

  复数包含实部和虚部,虚数单位是 -1 的平方根,使用 i 或 j表示复数的虚部。

c = [3+4i, 4+3j; -i, 10j]

技术图片

 

 

 

2.4 相关函数

(1)size

  size函数用于给出矩阵的行、列数

sz = size(A)

技术图片

 

 

 

(2)diag

  diag函数将输入元素放在矩阵的对角线上

A = [12 62 93 -8];
B = diag(A)

技术图片

 

 

3.数组的索引与使用

3.1 数组的索引

  按元素位置索引

e = B(1,2)

技术图片

3.2 for循环的结合使用

  用for循环存数据进入数组中,首先创建一个空数组xx,然后用for循环,如下:

clc,clear
xx=[];
for i=1:10
    a=i*2;
    xx(i)=a;
end
disp(xx)

技术图片

 

以上是关于MATLAB数组相关的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

几个关于js数组方法reduce的经典片段

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

使用np.array的Python中的矩阵和数组

web代码片段