matlab for 数组,Matlab数组

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

我们前面已经讨论和学习过向量和矩阵。 在本章中,将讨论和学习多维数组。 然而,在此之前,让我们先学习一些特殊类型的数组。

MATLAB中的特殊数组

在本节中,我们将讨论学习一些创建一些特殊数组的函数。对于这些函数,单个参数创建一个正方形数组,双参数创建矩形数组。

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

例如 -zeros(5)

MATLAB

执行上面示例代码,得到以下结果 -Trial>> zeros(5)

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 0

Shell

ones()函数创建一个所有元素为1的数组 -

例如 -ones(4,3)

MATLAB

执行上面示例代码,得到以下结果 -Trial>> ones(4,3)

ans =

1 1 1

1 1 1

1 1 1

1 1 1

Shell

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

例如 -eye(4)

MATLAB

执行上面示例代码,得到以下结果 -Trial>> eye(4)

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Shell

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

例如 -rand(3, 5)

MATLAB

执行上面示例代码,得到以下结果 -Trial>> rand(3, 5)

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

Shell

魔方

魔方是一个平方,它产生相同的和,它的元素被逐行,逐列或者对角线地添加时。

magic()函数创建一个魔术方阵。这需要一个参数,指定正方形的大小。 参数必须是大于或等于3的标量。magic(4)

MATLAB

执行上面示例代码,得到以下结果 -Trial>> magic(4)

ans =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

Shell

多维数组

具有二维以上的数组在MATLAB中被称为多维数组。MATLAB中的多维数组是正常二维矩阵的扩展。

通常要生成一个多维数组,首先创建一个二维数组然后再扩展它。

例如,让我们创建一个二维数组a。a = [7 9 5; 6 1 9; 4 3 2]

MATLAB

执行上面示例代码,得到以下结果 -Trial>> a = [7 9 5; 6 1 9; 4 3 2]

a =

7 9 5

6 1 9

4 3 2

Shell

数组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

Shell

还可以使用ones(),zeros()或rand()函数来创建多维数组。

例如,b = rand(4,3,2)

MATLAB

执行上面示例代码,得到以下结果 -Trial>> b = rand(4,3,2)

b(:,:,1) =

0.1419 0.9595 0.9340

0.4218 0.6557 0.6787

0.9157 0.0357 0.7577

0.7922 0.8491 0.7431

b(:,:,2) =

0.3922 0.0318 0.8235

0.6555 0.2769 0.6948

0.1712 0.0462 0.3171

0.7060 0.0971 0.9502

Shell

也可以使用cat()函数来构建多维数组。它沿着指定的维度连接数组列表 -

cat()函数的语法是 -B = cat(dim, A1, A2...)

MATLAB

其中,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])

MATLAB

执行上面示例代码,得到以下结果 -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

Shell

数组函数

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

MATLAB

运行文件时,显示以下结果 -ans = 8

ans = 4

ans = 23

Shell

数组元素的循环移位

创建脚本文件并在其中键入以下代码 -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.

MATLAB

运行文件文件时,显示以下结果 -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

Shell

排序数组

创建脚本文件并在其中键入以下代码 -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

MATLAB

运行文件文件时,显示以下结果 -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

Shell

单元阵列

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

单元格函数用于创建单元格数组。单元格函数的语法是 -C = cell(dim)

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

D = cell(obj)

MATLAB

其中,C是单元阵列;

dim是一个整数或整数向量,它指定单元格数组C的维数;

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

obj是以下之一:Java数组或对象

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

示例

创建脚本文件并在其中键入以下代码 -c = cell(2, 5);

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

MATLAB

运行文件时,得到以下结果 -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

}

Shell

访问单元格数组数据

有两种方法来引用单元格数组的元素 -将第一个括号()中的索引包围,以引用单元格集

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

当将索引包围在第一个括号中时,它指的是这组单元格。

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

例如: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

}

Shell

还可以通过用花括号索引来访问单元格的内容。

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

c{1, 2:4}

MATLAB

运行文件时,得到以下结果 -ans = Blue

ans = Green

ans = Yellow

Shell

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值