Matlab刻意训练 2019/10/23

Matlab刻意训练

Task04:单元数组(3.16)

3.16.1 单元数组的创建及赋值

  • 单元数组是一种MATLAB数组,它的每一元素是单元,在单元里可以保存各种类型MAT-LAB数组。例如单元数组、实数矩阵、文本字符串数组、结构数组以及其他复数向量等。
创建
C=cell(n)			%建立n阶单元空方阵
C=cell(m,n)			%建立m行n列单元空矩阵
C=cell(size(A))		%建立与矩形A同维的空单元矩阵
赋值

(1)下标索引

>> A(1,1)={magic(3)};
>> A(1,2)={'10/1/2004'};
>> A(2,1)={1:5};
>> A(2,2)={[1+2*i 2-3*i;2+3*i 1-2*i]};
>> A	%显示单元数组的结构

A =

  2×2 cell 数组

    {3×3 double}    {'10/1/2004'}
    {1×5 double}    {2×2 double }

>> celldisp(A)	%显示单元数组A的全部内容
 
A{1,1} =
 
     8     1     6
     3     5     7
     4     9     2

 
 
A{2,1} =
 
     1     2     3     4     5

 
 
A{1,2} =
 
10/1/2004
 
 
A{2,2} =
 
   1.0000 + 2.0000i   2.0000 - 3.0000i
   2.0000 + 3.0000i   1.0000 - 2.0000i

(2)单元索引

>> A{1,1}=magic(3);
>> A{1,2}='10/1/2004';
>> A{2,1}=1:5;
>> A{2,2}=[1+2*i 2-3*i;2+3*i 1-2*i];
>> celldisp(A)
 
A{1,1} =
 
     8     1     6
     3     5     7
     4     9     2

 
 
A{2,1} =
 
     1     2     3     4     5

 
 
A{1,2} =
 
10/1/2004
 
 
A{2,2} =
 
   1.0000 + 2.0000i   2.0000 - 3.0000i
   2.0000 + 3.0000i   1.0000 - 2.0000i

<<cellplot(A)在这里插入图片描述

3.16.2 单元数组的删除和改写

删除
>>A{a,b}=[]
改写
>> A=cell(4,6)		%预分配单元数组A

A =

  4×6 cell 数组

  1 至 5 列

    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}

  6 列

    {0×0 double}
    {0×0 double}
    {0×0 double}
    {0×0 double}

>> B=reshape(A,3,8)		%改写成3行8列

B =

  3×8 cell 数组

  1 至 5 列

    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}

  6 至 8 列

    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}

>> C=B(:,4:8)		%取B的4~8列得单元数组C

C =

  3×5 cell 数组

    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}    {0×0 double}

3.16.3 单元数组的运算

>> A=cell(2,3)

A =

  2×3 cell 数组

    {0×0 double}    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}    {0×0 double}

>> A{1,1}=rand(2,3);
>> A{1,2}=rand(3,2);
>> A{2,1}=[1 3 5 7];
>> A{2,2}=1:4;
>> A{1,3}=A{1,1}*A{1,2};		%乘积赋入A{1,3}
>> A{2,3}=conv(A{2,1},A{2,2})	%卷积赋入A{2,3}

A =

  2×3 cell 数组

    {2×3 double}    {3×2 double}    {2×2 double}
    {1×4 double}    {1×4 double}    {1×7 double}

>> celldisp(A)
 
A{1,1} =
 
    0.8147    0.1270    0.6324
    0.9058    0.9134    0.0975

 
 
A{2,1} =
 
     1     3     5     7

 
 
A{1,2} =
 
    0.2785    0.9649
    0.5469    0.1576
    0.9575    0.9706

 
 
A{2,2} =
 
     1     2     3     4

 
 
A{1,3} =
 
    0.9018    1.4199
    0.8452    1.1126

 
 
A{2,3} =
 
     1     5    14    30    41    41    28

注:卷积是两个变量在某范围内相乘后求和的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值