创建,串联,扩大矩阵

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

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

A = 100;谁是一个
命名大小字节类属性1x1 8双

构造一个数据矩阵

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

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

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

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

专业矩阵函数

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

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

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

A = [12 62 93 -8]。B = DIAG(A)
B =4×412 0 0 0 0 62 0 0 0 0 93 0 0 0 0 -8

级联矩阵

你也可以用方括号来加入现有的矩阵合在一起。创建一个矩阵的这种方式被称为连接。例如,连接两个行向量,使甚至更长的行向量。

A =酮(1,4);B =零(1,4);C = [A B]
C =1×81 1 1 1 0 0 0 0

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

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

连接两个矩阵,它们必须有兼容的尺寸。换句话说,当你水平串联矩阵,它们必须具有相同的行数。当你垂直将它们连接起来,它们必须具有相同的列数。例如,水平地连接两个矩阵在都具有两行。

A =酮(2,3)
A =2×3111 111 111
B =零(2,2)
B =2×20 0 0 0
C = [A B]
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的整数的行向量。

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

您可以使用冒号运算符来创建任何范围内的数字序列,加一。

一个= -2.5:2.5
A =1×6-2。5000 -1。5000 -0。5000

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

A = 0:2:10
A =1×60 2 4 6 8 10

要减量,使用负数。

A = 6:-1:0
A =1×76 5 4 3 2 1 0

还可以增加非整数值。如果一个递增值没有均匀地划分指定的范围,MATLAB会自动结束序列在超过该范围之前的最后一个可以达到的值。

A = 1:0.2:2.1
A =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]
A =2×310 20 30 60 70 80
A(3,4)= 1
A =3×410 20 30 0 60 70 80 0 0 0 0 1

您还可以通过将现有的索引范围的新的矩阵外扩规模。

A(4:5,5:6) = [2 3;4 5]
A =5×610 20 30 0 0 0 60 70 80 0 0 0 0 0 0 1 0 0 0 0 0 0 2 3 0 0 0 0 4 5

重复展开一个矩阵的大小,如内对于循环时,通常最好是为您预计创造最大的矩阵预分配的空间。如果没有预分配,MATLAB必须每次尺寸的增加,减缓操作分配内存。例如,预分配,通过初始化它的元素为零容纳多达10,000行和10000列的矩阵。

一个= 0 (10000、10000);

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

空数组

在MATLAB空数组是具有至少一个维度长度等于零的阵列。空数组是表示“没有”编程的概念非常有用。例如,假设你想找到那些小于0的向量的所有元素,但有没有。该找到函数返回索引的空载体,这表明它找不到任何元素小于0。

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

许多算法包含函数调用可以返回空数组。它往往是有用的,让空数组这些算法流经作为函数的参数,而不是处理它们作为一种特殊情况。如果你需要定制空数组处理,您可以检查使用它们的是空的功能。

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

相关的话题