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