【MATLAB】矩阵运算

文章目录

  • 建立矩阵
  • 冒号表达式
  • MATLAB常用数学函数
  • 获取数组结构参数的M命令
  • 行数组的创建
    • 1.使用方括号`[]`操作符
    • 2.使用冒号`:`操作符
    • 3.利用函数linspace
  • 列向量的创建
    • 1.使用方括号操作符`[]`,使用分号分割行
    • 2.使用冒号操作符
  • 二维数组的创建
    • 1.使用方括号操作符`[]`
  • 数组元素的编址与访问
    • 元素与子数组的寻访与赋值
  • /右除、\左除的区别
  • 点运算

建立矩阵

首先要明确的是方括号创建,圆括号调用
建立矩阵可以用:直接输入法、利用函数建立矩阵和利用M文件
建立矩阵.
直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入
各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之
间用分号分隔.(也可以用回车键代替分号)
例如,键入命令: A=[1 2 3;4 5 6;7 8 9]
输出结果是: A = 1 2 3
4 5 6
7 8 9

冒号表达式

在MATLAB中,冒号是一个重要的运算符.利用它可以产生向量,
还可用来拆分矩阵.冒号表达式的一般格式是:
e1:e2:e3其中e1为初始值,e2为步长,e3为终止值.冒号表达
式可产生一个由e1开始到e3结束,以步长e2自增的行向量.
例如: i=1:0.5:10

MATLAB常用数学函数

MATLAB提供了许多数学函数,函数的自变量规定为矩阵变量,
运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一
个与自变量同维数的矩阵.

获取数组结构参数的M命令

Nd=ndims(A) 获取A数组的维度数目
S=size(A) 获取A数组各维度的规模
Snd=size(A,nd) 获取A数组第nd维度的规模
L=length(A) 获取A数组的长度(所有维度规模中的最大值)
Ne=numel(A) 给出A数组所含元素的总数

行数组的创建

1.使用方括号[]操作符

【例7】创建数组(行向量)a=[1 3 pi 3+5i]
a=[1 3 pi 3+5i] %or a=[1, 3, pi, 3+5i]
a= 1.0000 3.0000 3.1416 3.0000 + 5.0000i
所有的向量元素必须在操作符“[ ]”之内;
向量元素间用空格或英文的逗点“,”分开。

2.使用冒号:操作符

【例8】创建以1~10顺序排列整数为元素的行向
量b。

b=1:10
b=1 2 3 4 5 6 7 8 9 10

【例9】键入并执行c=1:2:10和d=1:2:9

c=1:2:10
c=1 3 5 7 9

d=1:2:9
d= 1 3 5 7 9

利用冒号“:”操作符创建行向量的基本语法格式:
x=Start:Increment:End
– Start表示新向量x的第一个元素;
– 新向量x的最后一个元素不能大于End ; – Increment可正可负,若负,则必须Start>End;若
正,则必须Start – 若Increment=1,则可简写为:x=Start:End。

3.利用函数linspace

函数linspace的基本语法
x= linspace(x1, x2, n)
– 该函数生成一个由 n 个元素组成的行向量;
– x1为其第一个元素;
– x2为其最后一个元素;
– x1、x2之间元素的间隔=(x2-x1)/(n-1)。 – 如果忽略参数n,则系统默认生成100个元素的行向
量。

【例10】键入并执行 x= linspace(1,2,5)
x=1.0000 1.2500 1.5000 1.7500 2.0000

列向量的创建

1.使用方括号操作符[],使用分号分割行

【例11】键入并执行x= [1; 2; 3]
X=1
23

2.使用冒号操作符

【例12】键入并执行x= (1:3)’ % “ ’ ”表示矩阵的转置

二维数组的创建

1.使用方括号操作符[]

使用规则
– 数组元素必须在“[ ]”内键入;
– 行与行之间须用分号“;” 间隔,也可以在分行处用
回车键间隔;
– 行内元素用空格或逗号“,”间隔。
【例14】键入并执行a2=[1 2 3;4 5 6;7 8 9]
a2=
1 2 3
4 5 6
7 8 9
【例15】键入并执行a2=[1:3;4:6;7:9] %结果同上

数组元素的编址与访问

数组元素的编址
全下标标识:每一维对应一个下标

元素与子数组的寻访与赋值

【例21】一维数组元素与子数组的寻访与赋值

a=linspace(1,10,5)

a =
1.0000 3.2500 5.5000 7.7500 10.0000

a(3) %寻访a的第3个元素

ans =
5.5000

a([1 2 5])
%寻访a的第1、2、5个元素组成的子数组

ans =
1.0000 3.2500 10.0000

a(1:3) %寻访前3个元素组成的子数组

ans =
1.0000 3.2500 5.5000

a(31) %由前3个元素倒序构成的子数组

ans =
5.5000 3.2500 1.0000

a(3:end)

ans =
5.5000 7.7500 10.0000

a(3:end-1)

ans =
5.5000 7.7500

注意

  • 二维数组可以“单下标”方式或“全下标”方式访
    问、赋值;
  • “单下标”方式赋值时,等号两边涉及的元素个数
    必须相等;
  • “全下标”方式赋值时,等号右边数组的大小必须
    等于原数组中涉及元素构成的子数组的大小。

/右除、\左除的区别

设A是非奇异矩阵,则可以实现A\B和B/A的操作.

  • (左除): A\B等效于 A的逆左乘B矩阵, inv(A)*B.
  • /(右除): B/A等效于A的逆右乘B矩阵, B* inv(A).
    (对于标量的运算,两者相同,4\3 =3/4 )

点运算

点乘、点右除、点左除
点运算表示矩阵中的对应元素进行相关的运算

你可能感兴趣的:(matlab,matlab)