✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页: 小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:MATLAB 向量和矩阵
1.输入数组
MATLAB 中的每个数值变量都是一个 数组,单个称为标量的数值实际上是一个1×1
数组,也即它包含1
行1
列。我们可以用方括号
[]
来创建包含多个元素的数组:
x = [2 3 4]
这样我们能够得到一个包含元素2
、3
、4
的 数组,也即一个包含元素2
、3
、4
的 行向量。我们可以通过分号
;
来区分数组中的不同行:
x = [2 3 4;5 6 7]
这样我们能够得到一个2×3
数组,第一行包含元素2
、3
、4
,第二行包含元素5
、6
、7
。
2.创建等间距向量
有的时候,我们会需要一些包含等间距数值的向量,如:
x = [2 3 4]
当需要的数值量更多时,我们需要写成这样:
x = [2 3 4 5 6 7 8 9 10 11 12]
这显然是十分不便的, MATLAB 为我们创建等间距向量提供了更简便的写法。
2.1 通过间距创建等间距向量
我们可以用冒号运算符
:
生成一个等间距的向量:
x = 2:12
仅指定 起始值和 最终值来生成一个等间距的向量,同时 注意,使用冒号运算符时, 不需要方括号。冒号运算符
:
使用的默认间距为1
,我们也可以手动指定间距:
x = 2:2:12
这样表示以2
为起始值,以2
为间距,以12
为最终值生成一个等间距的向量,等价于:
x = [2 4 6 8 10 12]
2.2 通过元素数目创建等间距向量
如果我们知道向量中所需的元素数目(而不是每个元素之间的间距),则可以改用
linspace
函数:
linspace(first,last,number_of_elements)
创建一个以1
开头,以10
结尾,共包含5
个元素的行向量:
x = linspace(1,10,5)
2.3 等间距列向量
上面的两个方法都可以创建等间距向量,但它们创建出的向量都是行向量,如何得到等间距的列向量呢?MATLAB 为我们提供了转置运算符
'
来将一个向量进行转置。通过转置,我们就可以用上面的方法生成等间距的列向量了:
x = 2:2:12
x = x'
y = linspace(1,10,5)
y = y'
我们也可以在创建时就进行转置,此时我们使用圆括号
()
来指定运算的顺序:
x = (2:2:12)'
y = (linspace(1,10,5))'
3.数组创建函数
MATLAB 包含许多函数,可帮助我们创建常用的矩阵,如
rand
函数:
x = rand(2)
这里x
将会是一个2×2
的随机数矩阵。为
rand
函数提供两个参数,来分别指定它的行数和列数:
x = rand(2,3)
这里x
将会是一个2×3
的随机数矩阵。其他的数组创建函数也具有相同的用法:
x = zeros(4)
y = ones(6,3)
这里的x
和y
分别是一个4×4
的全0矩阵和一个6×3
的全1矩阵。
size
函数能够得到现有矩阵的大小:
x = [1 2 3;4 5 6]
size(x)
我们可以借助
size
函数来生成与现有矩阵大小相同的矩阵:
x = [1 2 3;4 5 6]
y = rand(size(x))