MATLAB 数组

MATLAB 数组

MATLAB 冒号表示法MATLAB 矩阵

MATLAB 数组

MATLAB中所有数据类型的所有变量都是多维数组。向量是一维数组,矩阵是二维数组。

我们已经讨论了向量和矩阵。在本章中,我们将讨论多维数组。但是,在此之前,让我们讨论一些特殊类型的数组。

MATLAB中的特殊数组在本节中,我们将讨论一些创建特殊数组的函数。对于所有这些功能,一个参数创建一个正方形数组,双参数创建一个矩形数组。

zeros()函数创建一个全零的数组-

例如-

示例zeros(5)MATLAB将执行上述语句并返回以下结果-

ans =

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0ones()函数创建一个全1的数组-

例如-

示例ones(4,3)MATLAB将执行上述语句并返回以下结果-

ans =

1 1 1

1 1 1

1 1 1

1 1 1eye()函数创建一个单位矩阵。

例如-

示例eye(4)MATLAB将执行上述语句并返回以下结果-

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1rand()函数在(0,1)上创建一个均匀分布的随机数数组-

例如-

示例rand(3, 5)MATLAB将执行上述语句并返回以下结果-

ans =

0.8147 0.9134 0.2785 0.9649 0.9572

0.9058 0.6324 0.5469 0.1576 0.4854

0.1270 0.0975 0.9575 0.9706 0.8003魔方magic square是一个正方形,当其元素按行,列或对角线相加时,会产生相同的和。

magic()函数创建一个魔术方阵。它采用一个单数参数,该参数给出了正方形的大小。参数必须是大于或等于3的标量。

示例magic(4)MATLAB将执行上述语句并返回以下结果-

ans =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1多维数组具有两个以上维的数组在MATLAB中称为多维数组。MATLAB中的多维数组是常规二维矩阵的扩展。

通常,要生成多维数组,我们首先创建一个二维数组并将其扩展。

例如,让我们创建一个二维数组a。

示例a = [7 9 5; 6 1 9; 4 3 2]MATLAB将执行上述语句并返回以下结果-

a =

7 9 5

6 1 9

4 3 2数组a是3×3数组;我们可以添加第三维一,通过提供类似的价值观-

示例a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]MATLAB将执行上述语句并返回以下结果-

a =

ans(:,:,1) =

0 0 0

0 0 0

0 0 0

ans(:,:,2) =

1 2 3

4 5 6

7 8 9我们也可以创建一个使用多维数组ones(),zeros()或rand()功能。

例如,

示例b = rand(4,3,2)MATLAB将执行上述语句并返回以下结果-

b(:,:,1) =

0.0344 0.7952 0.6463

0.4387 0.1869 0.7094

0.3816 0.4898 0.7547

0.7655 0.4456 0.2760

b(:,:,2) =

0.6797 0.4984 0.2238

0.6551 0.9597 0.7513

0.1626 0.3404 0.2551

0.1190 0.5853 0.5060我们还可以使用cat()函数来构建多维数组。它沿着指定的维度连接一个数组列表-

cat()函数的语法是-

B = cat(dim, A1, A2...)在哪里,

B是创建的新数组

A1,A2,...是要串联的数组

dim是连接数组所依据的维

实例创建一个脚本文件并在其中键入以下代码-

示例a = [9 8 7; 6 5 4; 3 2 1];

b = [1 2 3; 4 5 6; 7 8 9];

c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])运行文件时,它显示-

c(:,:,1) =

9 8 7

6 5 4

3 2 1

c(:,:,2) =

1 2 3

4 5 6

7 8 9

c(:,:,3) =

2 3 1

4 7 8

3 9 0数组函数MATLAB提供了以下功能来对数组内容进行排序,旋转,置换,整形或移位。

功能作用length向量长度或最大数组维数

ndims数组维数numel数组元素数size数组维数iscolumn确定输入是否为列向量

isempty确定数组是否为空ismatrix确定输入是否为矩阵

isrow确定输入是否为行向量isscalar确定输入是否为标量isvector确定输入是否为向量blkdiag根据输入参数构造块对角矩阵

circshift循环移位数组ctranspose复共轭转置diag对角矩阵和矩阵的对角线flipdim沿指定的维度翻转数组

fliplr从左到右翻转矩阵flipud上下翻转矩阵ipermute倒置 N-D 数组的维数

permute重新排列N-D数组的维数

repmat复制和切片数组reshape重塑数组rot90将矩阵旋转90度shiftdim移动维度issorted确定集合元素是否按排序顺序sort按升序或降序对数组元素排序

sortrows按升序对行进行排序squeeze删除单例维度transpose转置vectorize向量化表达实例以下示例说明了上面提到的一些功能。

元素的长度、维数和数量-

创建一个脚本文件并在其中键入以下代码-

示例x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];

length(x) % length of x vector

y = rand(3, 4, 5, 2);

ndims(y) % no of dimensions in array y

s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];

numel(s) % no of elements in s运行文件时,它显示以下结果-

ans = 8

ans = 4

ans = 23数组元素的循环移位

创建一个脚本文件并在其中键入以下代码-

示例a = [1 2 3; 4 5 6; 7 8 9] % the original array a

b = circshift(a,1) % circular shift first dimension values down by 1.

c = circshift(a,[1 -1]) % circular shift first dimension values % down by 1

% and second dimension values to the left % by 1.运行文件时,它显示以下结果-

a =

1 2 3

4 5 6

7 8 9

b =

7 8 9

1 2 3

4 5 6

c =

8 9 7

2 3 1

5 6 4排序数组创建一个脚本文件并在其中键入以下代码-

示例v = [ 23 45 12 9 5 0 19 17] % horizontal vector

sort(v) % sorting v

m = [2 6 4; 5 3 9; 2 0 1] % two dimensional array

sort(m, 1) % sorting m along the row

sort(m, 2) % sorting m along the column运行文件时,它显示以下结果-

v =

23 45 12 9 5 0 19 17

ans =

0 5 9 12 17 19 23 45

m =

2 6 4

5 3 9

2 0 1

ans =

2 0 1

2 3 4

5 6 9

ans =

2 4 6

3 5 9

0 1 2单元数组单元格数组是索引单元格的数组,其中每个单元格可以存储不同维度和数据类型的数组。

cell函数用于创建单元格数组。单元格功能的语法是-

C = cell(dim)

C = cell(dim1,...,dimN)

D = cell(obj)说明,C是单元数组;

dim是标量整数或整数向量,用于指定单元格数组C的维数;

dim1,...,dimN是指定C维数的标量整数;

obj是以下其中之一-

Java数组或对象

.NET类型System.String或System.Object的数组

实例创建一个脚本文件并在其中键入以下代码-

示例c = cell(2, 5);

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}运行文件时,它显示以下结果-

c =

{

[1,1] = Red

[2,1] = 1

[1,2] = Blue

[2,2] = 2

[1,3] = Green

[2,3] = 3

[1,4] = Yellow

[2,4] = 4

[1,5] = White

[2,5] = 5

}访问单元数组中的数据有两种方法可以引用单元格数组的元素-

将索引括在第一个方括号()中,以引用单元格集

将索引括在大括号{}中,以引用单个单元格中的数据

当您将索引括在第一个括号中时,它指的是单元格的集合。

圆括号中的单元格数组索引是指单元格集。

例如-

示例c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};

c(1:2,1:2)MATLAB将执行上述语句并返回以下结果-

ans =

{

[1,1] = Red

[2,1] = 1

[1,2] = Blue

[2,2] = 2

}您也可以使用大括号索引来访问单元格的内容。

例如-

示例c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};

c{1, 2:4}MATLAB将执行上述语句并返回以下结果-

ans = Blue

ans = Green

ans = YellowMATLAB 冒号表示法MATLAB 矩阵

相关推荐

神仙道太阴鼎哪里多?探寻神仙道阴阳阁的秘密
365app手机版官方

神仙道太阴鼎哪里多?探寻神仙道阴阳阁的秘密

📅 07-24 👁️ 3113
一代女皇是减肥的吗 利用一代女皇减肥注意事项
bt365体育网址

一代女皇是减肥的吗 利用一代女皇减肥注意事项

📅 07-01 👁️ 2227
0721的由来
beat365在线体育打不开

0721的由来

📅 08-13 👁️ 4782
使用makecab压缩整个文件夹
365app手机版官方

使用makecab压缩整个文件夹

📅 09-02 👁️ 1214
L系列机型打印输出有空白条纹或严重偏色,如何解决?(有运输锁) - 爱普生产品常见问题 - 爱普生中国
外壳没有一根钢筋一块混凝土,水立方究竟藏着多少秘密
上瘾(今婳)全文阅读
bt365体育网址

上瘾(今婳)全文阅读

📅 09-16 👁️ 6415
上海车牌号字母代表,沪A沪B沪C沪D区别
beat365在线体育打不开

上海车牌号字母代表,沪A沪B沪C沪D区别

📅 07-03 👁️ 4518
猎人史诗弓能用到什么时候
bt365体育网址

猎人史诗弓能用到什么时候

📅 07-21 👁️ 6572