Matlab学习笔记2011-09-14【基础知识】

1. 创建一维数组的方法
   1)直接输入法
      使用分号,创建一维列数组;使用空格,创建一维行数组
   2)步长生成法
       a:inc:b
      3)   定数线性采样发
       x=linspace(a,b,n) 在设定的“总个数”条件下,均匀采样分布生成一维行数组,其中a,b分别是数组的第一个和最后一个元素,n标识采样点数
    4)定数对数采样法
       x=logspace(a,b,n) 经过“常用对数”采样生成一维行向量


2. 创建高维数组
    1)使用下标创建
        A(1,2,1)=1;
 >> B(3,4,:)=2:5


B(:,:,1) =


     0     0     0     0
     0     0     0     0
     0     0     0     2




B(:,:,2) =


     0     0     0     0
     0     0     0     0
     0     0     0     3




B(:,:,3) =


     0     0     0     0
     0     0     0     0
     0     0     0     4




B(:,:,4) =


     0     0     0     0
     0     0     0     0
     0     0     0     5
2) 使用低维数组创建三维数组
>> D3(:,:,1)=D2;
>> D3(:,:,2)=2*D2; 
>> D3(:,:,3)=3*D2;
>> D3


D3(:,:,1) =


     1     2     3
     4     5     6
     7     8     9




D3(:,:,2) =


     2     4     6
     8    10    12
    14    16    18




D3(:,:,3) =


     3     6     9
    12    15    18
    21    24    27
3)使用创建函数创建三维数组
   A。cat
      >> D2=[1,2,3;4,5,6;7,8,9];
>> D2


D2 =


     1     2     3
     4     5     6
     7     8     9


>> C=cat(3,D2,2*D2,3*D2);
>> C


C(:,:,1) =


     1     2     3
     4     5     6
     7     8     9




C(:,:,2) =


     2     4     6
     8    10    12
    14    16    18




C(:,:,3) =


     3     6     9
    12    15    18
    21    24    27
 cat 命令的功能是链接数组,其调用格式为C=cat(dim,A1,A2,A3,...)其中,dim标识创建数组的维度,其他各维度上的数组
B。repmat命令
    >> D3=repmat(D2,2,3);
>> D4=repmat(D2,[1 2 3]);
>> D3


D3 =


     1     2     3     1     2     3     1     2     3
     4     5     6     4     5     6     4     5     6
     7     8     9     7     8     9     7     8     9
     1     2     3     1     2     3     1     2     3
     4     5     6     4     5     6     4     5     6
     7     8     9     7     8     9     7     8     9


>> D4


D4(:,:,1) =


     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9




D4(:,:,2) =


     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9




D4(:,:,3) =


     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9
   repmat命令的功能在于复制并堆砌数组,其调用格式为B=repmat(A,[m n p ...])中,A表示复制的数组模块,第二个输入参数则表示该数组模块在各个维度上的复制个数(m 表示行复制个数  n 表示列复制个数  p 表示复制的维数)
C。reshape命令
    >> D3=repmat(D2,2,3);
>> D4=repmat(D2,[1 2 3]);
>> D3


D3 =


     1     2     3     1     2     3     1     2     3
     4     5     6     4     5     6     4     5     6
     7     8     9     7     8     9     7     8     9
     1     2     3     1     2     3     1     2     3
     4     5     6     4     5     6     4     5     6
     7     8     9     7     8     9     7     8     9


>> D4


D4(:,:,1) =


     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9




D4(:,:,2) =


     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9




D4(:,:,3) =


     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9


  reshape命令的功能在于修改数组的大小,因此用户可以将二维数组通过该命令修改为三维的数组,调用格式为
  B=reshape(A,[m n p ...])其中A就是待重组的矩阵,后面的输入参数则表示数组各维的维度


3. 选取低维数组的对角元素
    使用diag命令来选取对角元素或者创建矩阵
    >> Data=[1,2,3,4;5,6,7,8;9,10,11,12]
A1=diag(Data,1);A2=diag(Data)
A3=diag(Data,-1)
B1=diag(A2,1)
B2=diag(A3,1)


Data =


     1     2     3     4
     5     6     7     8
     9    10    11    12




A2 =


     1
     6
    11




A3 =


     5
    10




B1 =


     0     1     0     0
     0     0     6     0
     0     0     0    11
     0     0     0     0




B2 =


     0     5     0
     0     0    10
     0     0     0
    diag命令的功能是选取矩阵对角线的数组,也可以将某个数组来创建矩阵,可以很方便地利用该命令处理矩阵对角线的数据。
4.低维数组的形式转换
   对数组或者矩阵来进行形式转换:对称变换和旋转
  flipr: 以数组的垂直中线为对称轴,交换左右对称位置上的数组元素
  flipud: 以数组的水平中线为对称轴,交换左右上下对称位置上的数组元素
  rot90: 逆时针旋转二维数组90度


5. 构架数组
    构架数组是一个比较特殊的数组类型,在该数组中可以存放各种不同类型的数据。构架数组的基本组成是构架,数组汇总的每个构架都是平等的,他们主要用下标来区分。构架必须在划分“域”之后才能使用,数据不能直接存放在构架数组中,而智能直接存放在构架的域中。
 1)使用直接放创建单构架数组
    >> patient.name='John';
>> patient.medi_information.city='Changsha'


patient = 


                name: 'John'
    medi_information: [1x1 struct]


>> whos patient
  Name         Size            Bytes  Class     Attributes


  patient      1x1               396  struct    
2) 使用命令创建构架数组
    >> W=struct('city',{'Changsha','Chengdu'},'temp',{43,444})


W = 


1x2 struct array with fields:
    city
    temp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值