主要内容

创建、连接和扩展矩阵

MATLAB®中最基本的数据结构是矩阵。矩阵是按行和列排列的二维矩形数据元素数组。元素可以是数字、逻辑值(真的或者)、日期和时间、字符串或其他MATLAB数据类型。

即使单个数字也被存储为矩阵。例如,包含值100的变量存储为类型的1×1矩阵双倍的

一个= 100;谁一个
名称大小字节类类属性1x1 8双倍

构建数据矩阵

如果您有特定的数据集,则可以使用方括号在矩阵中排列元素。单行数据在元素之间具有空格或逗号,分号分隔行。例如,创建单行的四个数字元素。得到的矩阵的大小是1-by-4,因为它具有一行和四列。这种形状的矩阵通常称为行向量。

a = [12 62 93 -8]
一个=1×412 62 93 -8
sz =尺寸(a)
深圳=1×21 4

现在创建具有相同号码的矩阵,但以两行排列。该矩阵有两行和两列。

a = [12 62;93 -8]
一个=2×212 62 93 -8
sz =尺寸(a)
深圳=1×22 2

特殊矩阵函数

MATLAB有许多功能,有助于创建具有某些值或特定结构的矩阵。例如0函数创建所有零的矩阵或所有零。这些函数的第一和第二参数分别是矩阵的行数和列数。

A =零(3,2)
一个=3×20 0 0 0 0
b = ins(2,4)
B =2×4.1 1 1 1 1 1

诊断函数将输入元素放在矩阵的对角线上。例如,创建行向量一个包含四个元素。然后,创建一个4×4矩阵,其对角线元素是元素一个

A = [12 62 93 -8];B =诊断接头(A)
B =4×4.12 0 0 0 62 0 0 0 93 0 0 0 0 0 0 -8

连接矩阵

您还可以使用方括号将现有的矩阵连接在一起。这种创建矩阵的方法被称为级联.例如,将两个行向量连接成更长的行向量。

一个= 1(1、4);B = 0(1、4);【答案】[a]
C =1×81 1 1 1 0 0 0 0 0

安排一个B作为两行的矩阵,使用分号。

d = [a; b]
d =2×4.1 1 1 1 0 0 0 0 0

要连接两个矩阵,它们必须具有兼容的大小。换句话说,当你水平连接矩阵时,它们必须有相同的行数。当您垂直连接它们时,它们必须具有相同数量的列。例如,水平连接两个都有两行的矩阵。

一个= 1(2、3)
一个=2×31 1 1 1 1 1
B =零(2,2)
B =2×20 0 0 0
【答案】[a]
C =2×51 1 1 0 0 1 1 1 0 0

连接矩阵的另一种方法是使用连接函数,例如horzcat,水平连接两个兼容的输入矩阵。

D = horzcat (A, B)
d =2×51 1 1 0 0 1 1 1 0 0

生成数字序列

结肠是一种方便的方式来创建元素是顺序且均匀间隔的矩阵。例如,创建一个行向量,其元素是从1到10的整数。

一个= 1:10
一个=1×101 2 3 4 5 6 7 8 9 10

可以使用冒号操作符创建任意范围内的数字序列,该序列加1。

a = -2.5:2.5
一个=1×6-2.5000 -1.5000 -0.5000 0.5000 1.5000 2.5000

若要更改序列增量的值,请指定起始范围值和结束范围值之间的增量值,用冒号分隔。

一个= 0:2:10
一个=1×60 2 4 6 8 10

要递减,请使用负数。

一个= 6:1:0
一个=1×71 .你的工作是什么? 2 .你的工作是什么

您也可以通过非整数值递增。如果增量值均匀地分区指定的范围,MATLAB会自动在超过范围之前达到最后一个值的序列。

一个= 1:0.2:2.1
一个=1×61.0000 1.2000 1.4000 1.6000 1.8000 2.0000

扩大一个矩阵

通过将一个或多个元素放置在现有的行和列索引边界之外,您可以向矩阵添加一个或多个元素。MATLAB自动用零填充矩阵,使其保持矩形。例如,创建一个2 × 3矩阵,并通过在(3,4)位置插入一个元素向其添加额外的行和列。

A = [10 20 30;60 70 80)
一个=2×310 20 30 60 70 80 80
(3、4)= 1
一个=3×410 20 30 0 60 70 80 0 0 0 0

您还可以通过在现有索引范围之外插入一个新的矩阵来扩展大小。

a(4:5,5:6)= [2 3;4 5]
一个=5×6.10 20 30 0 0 0 60 70 80 0 0 0 0 0 10 0 0 0 2 30 0 0 0 4 5

重复地扩大矩阵的大小,如在矩阵内在循环中,通常最好为你预期创建的最大矩阵预先分配空间。在没有预分配的情况下,MATLAB必须在每次内存大小增加时分配内存,从而降低了操作速度。例如,通过将其元素初始化为零来预分配一个最多容纳10,000行和10,000列的矩阵。

a =零(10000,10000);

如果稍后需要预先采用其他元素,则可以通过在矩阵索引范围之外扩展它来扩展它或连接另一个预期的矩阵一个

空数组

在MATLAB中,空数组是一个至少一维长度等于零的数组。空数组对于在编程上表示“没有”的概念很有用。例如,假设你想找到一个小于0的向量的所有元素,但是没有。的函数返回一个空的下标向量,表示它找不到任何小于0的元素。

a = [1 2 3 4];IND =查找(A <0)
IND = 1x0空双排向量

许多算法都包含可以返回空数组的函数调用。允许空数组作为函数参数流经这些算法,而不是将它们作为特殊情况处理,通常是有用的。如果您确实需要自定义空数组处理,您可以使用isempty函数。

tf = isempty(ind)
TF =逻辑1

相关话题