主要内容

创建、连接和扩展矩阵

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

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

一个= 100;谁一个
Name Size Bytes Class Attributes A 1x1 8 double

构造数据矩阵

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

A = [12 62 93 -8]
一个=1×412 62 93 -8
深圳=大小(一个)
深圳=1×21 4

现在用相同的数字创建一个矩阵,但是将它们排列成两行。这个矩阵有两行两列。

A = [12 62;93年8]
一个=2×212 62 93 -8
深圳=大小(一个)
深圳=1×22 2

特殊矩阵函数

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

A = 0 (2)
一个=3×20 0 0 0 0
B = 1(2、4)
B =2×41 1 1 1 1 1

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

A = [12 62 93 -8];B =诊断接头(A)
B =4×412 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

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

D = [A, B]
D =2×41 1 1 1 0 0 0

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

一个= 1(2、3)
一个=2×31 1 1 1 1
B = 0 (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。

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

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

一个= 0:2:10
一个=1×61 . 2 .纳米比亚

要递减,请使用负数。

一个= 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
(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×610 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列的矩阵。

一个= 0(10000、10000);

如果以后需要预分配额外的元素,可以通过在矩阵索引范围之外赋值或连接另一个预分配的矩阵来扩展它一个

空数组

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

A = [1 2 3 4];印第安纳州=找到(< 0)
Ind = 1x0空双行向量

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

TF = isempty(印第安纳州)
TF =逻辑1

相关的话题