数组的使用(持续更新)
randperm–数组随机排列
- r= randperm(n) 返回包含从 1 到 n 没有重复元素的整数随机排列的行向量。
- r = randperm(n,k) 返回包含在 1 到 n 之间随机选择的 k 个唯一整数的行向量。
- 使用实例
A=[1:3;4:6];%创建A 数组
r = randperm(size(A,1));%按照A的行数,生成随机序列
B=A(r,:);`%随机排列后新的A
结果:
这里可以看到,生成的随机排序顺序为【2,1】,即原来第二行放到第一行,原来第一行放到第二行。
(PS:实例这里只有两行,排序效果只有两种,【1,2】,【2,1】)
permute–置换数组维度
B = permute(A,dimorder) 按照向量 dimorder 指定的顺序重新排列数组的维度。例如,permute(A,[2 1]) 交换矩阵 A 的行和列维度。
cat–串联数组
C = cat(dim,A1,A2,…,An) 沿维度 dim 串联 A1、A2、…、An。
data_1=permute(data1,[3 1 2 4]);
data_2=permute(data2,[3 1 2 4]);
data_3=permute(data3,[3 1 2 4]);
data_4=permute(data4,[3 1 2 4]);
traindata=cat(4,data_1,data_2,data_3,data_4);%将这四个矩阵沿着第四维度串联
squeeze–删除数组中长度为1的维度
A=squeeze(B);
reshape–重构数组
B = reshape(A,9,2)%多维度数组重构为矩阵`
B = reshape(A,[5,2])%向量重构为矩阵
B = reshape(A,[],2)%矩阵重构为指定列数
repmat–重复数组副本
A = [1 2; 3 4]
B = repmat(A,[2 3 2]);%将矩阵副本重复到 2×2×3 块排列中。
B = repmat(A,n) 返回一个数组,该数组在其行维度和列维度包含 A 的 n 个副本。A 为矩阵时,B 大小为 size(A)*n。
B = repmat(A,r1,...,rN) 指定一个标量列表 r1,..,rN,这些标量用于描述 A 的副本在每个维度中如何排列。当 A 具有 N 维时,B 的大小为 size(A).*[r1...rN]。例如:repmat([1 2; 3 4],2,3) 返回一个 4×6 的矩阵。
数组中的:
对于一个三维矩阵c;
a=[1 2 3 ;4 5 6 ]
c=cat(3,a,a)
c(:,:,1)=
1 2 3
4 5 6
c(:,:)=
1 2 3 1 2 3
4 5 6 4 5 6
c(:)=%1列2行
1
4
2
5
3
6
1
4
2
5
3
6
sort-数组的排序
b=sort(a);%按照升序对a进行排序
b=sort(a,dim);%a沿着维度dim进行排序**1是列,2是行**
b=sort(a,'ascend'/'descend');%第一个是升序,第二个是降序
dig-创建对角矩阵
x=dig(a);返回a主对角线上的列向量
x=dig(a,k);%返回a第k条对角线上元素的列向量
eig–特征值和特征向量
e=eig(a);%返回列向量
[v,d]=eig(a);%返回右特征向量v,返回特征值的对角阵v
magic–幻方矩阵
m=magic(n);%返回由1到N²的整数构成的n*n矩阵
每列元素和=每行元素和
max–返回最大值及其位置
[pro,loc]=max([a,b,c])返回最大值pro和最大值所在位置loc