• matlab 基础知识1


    一、数组和矩阵
    注意 逗号 和 分号 的区别

     

    向量生成方式:

    传统方式:行向量 :空格,逗号
    列向量 :分号,回车

    函数方式

    x = linspace(a,b,n)
    

      等分关系,从a 到 b, n等分。n默认为100

     x = logspace(a,b,n)
    

      生成[10^a,10^b]之间的数n个。n默认为50

    二、二维数组

    直接创建:

    A = [1 2 3; 4 5 6]
    

      

    函数生成:

    ones(m,n)     %全部为1
    eye(m,n)      %主对角线为1
    zeros(m,n)    %全部为0
    % 随机数系列:
    rand(m,n)    %生成均匀分布的伪随机数,分布在[0,1]之间
    randn(m,n)    %生成标准正态分布的伪随机数,均值为0,方差为1
    randi(max,m,n)    %生成全为整数的m行n列随机数,数值分布在闭区间[1,max]
    randi([imin,imax],m,n)  %生成全为整数的m行n列随机数,数值分布在闭区间[imin,imax]
    % 以上函数若只有一个参数,则表示为n行n列
    

    三、数组的大小

    size函数 测试数组或矩阵的大小

     d = size(数组名)

     d 为返回值,为一个行向量  d = [m n]

     x = [3 2];
     d = size(x)

     >> d =
         1  2
      表示 x 是一个1行2列的向量

    x = ones(3,4,5);
    d = size(x)
    

      

     [m,n] = size(数组名)

     m返回行数,n返回列数

      x = [4,5,6];
      [m,n] = size(x)
    

     

    length函数  返回数组中尺度较大维度的长度

     

    形式:
      空        返回0
      标量       返回1
      向量      返回实际个数
      多为数组    返回较大维度

     

    a = [];
    length(a)
    
    b = [3];
    length(b)
    
    c = [1 2 3 4 5];
    length(c)
    
    d = ones(4,5);
    length(d)
    

      

    numel函数  返回数组中总的元素的个数

    % m行n列,则总个数为m*n
     a = ones(4,5);
     numel(a)
               
    

      

    四、索引

    双下表索引

    A = magic(6); % 行,列,对角线上的和都是相等的
    A(4,3)
    

    单下表索引

    % 数组名(所在序号) 
    % 列优先排序
     A = [ 1 3 54; 5 6 7; 89 0 7 ];
     A(7)
    

    双下标索引转换为单下标索引

    % 方法
    %   单下表索引 = sub2ind(size,m,n)
    %    size数组大小: size(数组名)
    
     A = [ 1 3 54; 5 6 7; 89 0 7 ];
     ans1 = A(3,2)
      num = sub2ind(size(A),3,2)
     ans2 = A(num)
    

      利用sub2ind(size,m,n) 函数可以 将二维数组当成一个一维数组来进行处理

    单下标索引转换为双下标索引

    % 方法
    % [行,列] = ind2sub(size,num)
    %       数组大小: size(数组名)
    
    A = magic(7)
    [m,n] = ind2sub(size(A),13)
    ans1 = A(13)
    ans2 = A(6,2)
    

      

    五、 数组扩展

     cat( ) 函数

    % 扩展结果 = cat(标识,数组1,数组2,...)
    %       标识:1(表示按列排) 组合数组 必须有相同列
    %          或2(表示按行排)组合数组 必须有相同行
    
    A = ones(3,4);
    B = zeros(2,4);
    C = cat(1,A,B)

      

    A = ones(3,4);
    B = zeros(3,5);
    C = cat(2,A,B)

     

     vertcat( )函数

    % 扩展结果 = vertcat(数组1,数组2,...)
    %       将多个数组在垂直方向上组合在一起
    %   相当于:cat(1,数组1,数组2,...)  必须要列数一致
    
    A= ones(3,4);
    B = zeros(2,4);
    C = vertcat(A,B)
    

      

    horzcat( ) 函数

    % 扩展结果 = horzcat(数组1,数组2,...)
    %       将多个数组在水平方向上组合
    %  相当于: cat(2,数组1,数组2,...)  必须行数要一致
    
    A = ones(4,5);
    B = eye(4,3);
    C = horzcat(A,B)
    

      

    索引扩展

    % 直接指定当前数组外的一个位置,并对其进行赋值。
    % 确保数组以最小代价完成扩展。
    
    A = eye(3)
    A(2,5) = 5

    A(4,4) = 9

    A(6,6) = 11

      

    六、块操作

     repmat( )函数

    % 数组B = repmat(数组A,m,n)
     A = magic(3)
     B = repmat(A,2,3)
    

      

    blkdiag( )函数

    % 数组D = blkdiag(数组A,数组B,数组C,...)
    %   数组A,B,C,...按照对角线拼接
    A = ones(3)
    B = magic(4)
    C = blkdiag(A,B)
    

      

    kron( )函数

    %  数组C = kron(数组A,数组B)
    %   最后的结构: C与A一致;
    %   每个元素: C与B一致,即C = A对应位置乘以B的每个元素
    A = [0 1; 2 3]
    B = ones(3)
    C = kron(A,B)

    C = kron(B,A)

      

    七、数组裁剪

    罗列序号

    % 直接将需要保留的序号罗列出来
    % 裁剪结果数组 = 原数组(保留的行,保留的列)
    
    A =  magic(6)
    B =A([1 3 6],[ 2,4,5])

    C = A([1,3,6],[5,4,2])

     冒号 

    % 分类:①区间  ②等差序列  ③全部
    
    % ① 区间:m:n  其中m表示初始值,n表示终止值
    
    A = magic(6)
    B =A(1:3,3:6)

      

    % ②等差序列   m:k:n  初始值:等差值:终止值
    
    A  = magic(5)
    B = A(1:2:5,2:5)
    
    % ③全部
    % 冒号 : 
    % 当前索引位置所有能够取得的值。所有行,所有列
    
    A = magic(5)
    B = A(1:2:4,:)
    

    删除整行整列

    % 格式
    %   数组(要删除的行, : ) =[ ]; 
    %   数组( : , 要删除的列) =[ ];
    
    A = magic(7)
    A([1:3],:)=[ ]
    A(:,[2:5]) = [ ]

      

     

  • 相关阅读:
    IXmlSerializable With WCFData Transfer in Service Contracts
    Difference Between XmlSerialization and BinarySerialization
    Using XmlSerializer (using Attributes like XmlElement , XmlAttribute etc ) Data Transfer in Service Contracts
    Introducing XML Serialization
    Version Tolerant Serialization
    Which binding is bestWCF Bindings
    Data Transfer in Service Contracts
    DataContract KnownTypeData Transfer in Service Contracts
    Using the Message ClassData Transfer in Service Contracts
    DataContract POCO SupportData Transfer in Service Contracts
  • 原文地址:https://www.cnblogs.com/jsdy/p/11096426.html
Copyright © 2020-2023  润新知