Task06 (3.18)多维数组
多维数组的建立
- 直接赋值
格式【A为m行n列k页的多维数组,A(m,n,1)=xxx】
表示多维数组第一页=xxx
vander([a,b,c···])函数的使用
表示建立范德蒙矩阵,最后一列全为1,倒数第二列竖着拍列为a,b,c···,第三列为对应项的2次方,最后一列为n-1次方
!!因为括号内为向量,故应该加方括号! - 用函数建立
1, 可以生成m行n列矩阵的函数都可以通过加第三个数定义维度数
**rand(m,n)**用于生成m行n列的正态分布的随机矩阵,且都在0-1之间。
2, reshape(A,m,n,···)函数
作用方式是把A重排列(可以实现维度之间的转换 ),同样的,数据排列也是按列进行的。!!
变换前后要保证元素的总个数一致
如何知道n维数组的元素总个数?
使用prod函数与size函数的叠加。
1, size 的结果为一个向量,数据表示m行n列k维
2, prod是计算数组元素的连乘积。prod([1:5])=120; prod([2 4 6 8])=384; prod([3 4; 4 5])= 12 , 20
3, 故prod(size(A))=mnk;为元素个数。 - repmat复制函数
B=repmat(A,[3,4,3])表示在A为一个整体的情况下,在复制成3行4列3页的多维矩阵。 - cat矩阵连接函数
格式:a=cat(3,A,B,C) 生成3维,每一维分别是A,B,C
!! 1. 使用时必须维度相同。
使用时,注意区别!!2维时,相当于行拼接。1维时相当于列拼接。
多维数组的运算
matlab内部大部分函数都支持多维数组。但是多维素组使用函数时都是分别对每一维的,若要得到总的结果,应该使用函数的叠用!