MATLAB-数组的使用

发布时间:2025-12-09 19:51:47 浏览次数:4

数组的使用(持续更新)

    • randperm--数组随机排列
    • permute--置换数组维度
    • cat--串联数组
    • squeeze--删除数组中长度为1的维度
    • reshape--重构数组
    • repmat--重复数组副本
    • 数组中的:
    • sort-数组的排序
    • dig-创建对角矩阵
    • eig--特征值和特征向量
    • magic--幻方矩阵
    • max--返回最大值及其位置

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 34 5 6 c(:,:)=1 2 3 1 2 3 4 5 6 4 5 6 c(:)=%1列2行14 253614 2536

    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
    需要做网站?需要网络推广?欢迎咨询客户经理 13272073477