matlab中数组的⽤法,Matlab数组
Matlab 的 Matlab数组
MATLAB中所有数据类型的所有变量都是多维数组。向量是⼀维数组,矩阵是⼆维数组。
我们前⾯已经讨论和学习过向量和矩阵。 在本章中,将讨论和学习多维数组。 然⽽,在此之前,让我们先学习⼀些特殊类型的数组。MATLAB中的特殊数组
在本节中,我们将讨论学习⼀些创建⼀些特殊数组的函数。对于这些函数,单个参数创建⼀个正⽅形数组,双参数创建矩形数组。zeros()函数是⽤来创建⼀个全零的数组 -
例如 -
zeros(5)
执⾏上⾯⽰例代码,得到以下结果 -
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
ones()函数创建⼀个所有元素为1的数组 -
例如 -
ones(4,3)
执⾏上⾯⽰例代码,得到以下结果 -
Trial>> ones(4,3)
ans =
1 1 1
1 1 1
1 1 1
1 1 1
eye()函数创建⼀个单位矩阵。
例如 -
eye(4)
执⾏上⾯⽰例代码,得到以下结果 -
Trial>> eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
rand()函数在(0,1) - 上创建均匀分布的随机数的数组 -
例如 -
rand(3, 5)
执⾏上⾯⽰例代码,得到以下结果 -
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
魔⽅
魔⽅是⼀个平⽅,它产⽣相同的和,它的元素被逐⾏,逐列或者对⾓线地添加时。
magic()函数创建⼀个魔术⽅阵。这需要⼀个参数,指定正⽅形的⼤⼩。 参数必须是⼤于或等于3的标量。magic(4)
执⾏上⾯⽰例代码,得到以下结果 -
Trial>> magic(4)
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 1
5 1
多维数组
具有⼆维以上的数组在MATLAB中被称为多维数组。MATLAB中的多维数组是正常⼆维矩阵的扩展。
通常要⽣成⼀个多维数组,⾸先创建⼀个⼆维数组然后再扩展它。
例如,让我们创建⼀个⼆维数组a。
a = [7 9 5; 6 1 9; 4 3 2]
执⾏上⾯⽰例代码,得到以下结果 -
Trial>> a = [7 9 5; 6 1 9; 4 3 2]
a =
7 9 5
6 1 9
4 3 2
数组a是3×3数组; 可以通过提供以下值来添加第三维:
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
执⾏上⾯⽰例代码,得到以下结果 -
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)
执⾏上⾯⽰例代码,得到以下结果 -
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
也可以使⽤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
移动维度
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论