MATLAB从入门到开发 矩阵和数组——基础篇(二)

矩阵和数组相关函数

基本输入函数

函数名作用
ans最近计算的答案
clc清空命令行窗口
diary将命令行窗口文本记录到日志文件中
format设置命令行窗口输出显示格式
home发送光标复位
iskeyword确定输入是否为 MATLAB 关键字
more控制命令行窗口中的分页输出
命令行窗口选择命令行窗口
命令历史记录窗口打开命令历史记录窗口

创建与合并数组

函数名作用
zeros创建全零数组
ones创建全部为 1 的数组
rand均匀分布的随机数
true逻辑值 1(真)
false逻辑 0(假)
eye单位矩阵
diag创建对角矩阵或获取矩阵的对角元素
blkdiag分块对角矩阵
cat串联数组。
horzcat水平串联数组
vertcat垂直串联数组
repelem重复数组元素副本
repmat重复数组副本

创建网格

函数名作用
linspace生成线性间距向量
logspace生成对数间距向量
freqspace频率响应的频率间距
meshgrid二维和三维网格
ndgridN 维空间中的矩形网格

确定大小、形状、排序

函数名作用
length最大数组维度的长度
size数组大小
ndims数组维度数目
numel数组元素的数目
isscalar确定输入是否为标量
issorted确定数组是否已排序
issortedrows确定矩阵或表的行是否已排序
isvector确定输入是否为向量
ismatrix确定输入是否为矩阵
isrow确定输入是否为行向量
iscolumn确定输入是否为列向量
isempty确定数组是否为空

重构与重新排列

函数名作用
sort对数组元素排序
sortrows对矩阵行或表行进行排序
flip翻转元素顺序
fliplr将数组从左向右翻转
flipud将数组从上向下翻转
rot90将数组旋转 90 度
transpose转置向量或矩阵
ctranspose复共轭转置
permute置换数组维度
ipermute逆置换数组维度。
circshift循环平移数组
shiftdim移动数组维度
reshape重构数组
squeeze删除长度为 1 的维度

索引

函数名作用
colon向量创建、数组下标和 for 循环迭代
end终止代码块或指示最大数组索引
ind2sub线性索引的下标
sub2ind将下标转换为线性索引

矩阵和数组相关运算

数组创建

要创建每行包含四个元素的数组,请使用逗号 (,) 或空格分隔各元素。

a = [1 2 3 4]
a = 1×4

 1     2     3     4

这种数组为行向量。

要创建包含多行的矩阵,请使用分号分隔各行。

a = [1 2 3; 4 5 6; 7 8 10]
a = 3×3

 1     2     3
 4     5     6
 7     8    10

创建矩阵的另一种方法是使用 ones、zeros 或 rand 等函数。例如,创建一个由零组成的 5×1 列向量。

z = zeros(5,1)
z = 5×1

 0
 0
 0
 0
 0

矩阵和数组运算

MATLAB 允许您使用单一的算术运算符或函数来处理矩阵中的所有值。

a + 10
ans = 3×3

11    12    13
14    15    16
17    18    20

sin(a)
ans = 3×3

0.8415    0.9093    0.1411

-0.7568 -0.9589 -0.2794
0.6570 0.9894 -0.5440

要转置矩阵,请使用单引号 (’):

a’
ans = 3×3

 1     4     7
 2     5     8
 3     6    10

您可以使用 * 运算符执行标准矩阵乘法,这将计算行与列之间的内积。例如,确认矩阵乘以其逆矩阵可返回单位矩阵:

p = a*inv(a)
p = 3×3

1.0000         0         0
0.0000    1.0000         0
0.0000   -0.0000    1.0000

请注意,p 不是整数值矩阵。MATLAB 将数字存储为浮点值,算术运算可以区分实际值与其浮点表示之间的细微差别。使用 format 命令可以显示更多小数位数:

format long
p = a*inv(a)
p = 3×3

1.000000000000000 0 0
0.000000000000002 1.000000000000000 0
0.000000000000002 -0.000000000000004 1.000000000000000

使用以下命令将显示内容重置为更短格式

format short
format 仅影响数字显示,而不影响 MATLAB 对数字的计算或保存方式。

要执行元素级乘法(而非矩阵乘法),请使用 .* 运算符:

p = a.*a
p = 3×3

 1     4     9
16    25    36
49    64   100

乘法、除法和幂的矩阵运算符分别具有执行元素级运算的对应数组运算符。例如,计算 a 的各个元素的三次方:

a.^3
ans = 3×3

       1           8          27
      64         125         216
     343         512        1000

串联

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

A = [a,a]
A = 3×6

 1     2     3     1     2     3
 4     5     6     4     5     6
 7     8    10     7     8    10

使用逗号将彼此相邻的数组串联起来称为水平串联。每个数组必须具有相同的行数。同样,如果各数组具有相同的列数,则可以使用分号垂直串联。

A = [a; a]
A = 6×3

 1     2     3
 4     5     6
 7     8    10
 1     2     3
 4     5     6
 7     8    10

复数

复数包含实部和虚部,虚数单位是 -1 的平方根。

sqrt(-1)
ans = 0.0000 + 1.0000i
要表示复数的虚部,请使用 i 或 j。

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

3.0000 + 4.0000i 4.0000 + 3.0000i
0.0000 - 1.0000i 0.0000 +10.0000i

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦走一口田

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值