Task04:单元数组

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45138411/article/details/102706039

单元数组

语法知识

单元数组
单元数组是一种MATLAB数组,它的每一元素是单元,在单元里可以保存各种类型的MATLAB数组。例如单元数组、实数矩阵、文本字符串数组、结构数组以及其他复数向量等。下表为2行3列单元数组的例子:
在这里插入图片描述
单元数组的创建:
可以通过对单元数组的赋值来创建单元数组,也可以对单元数组的预分配来创建,对于单元数组的预分配的书写格式为:
在这里插入图片描述
在这里插入图片描述
单元数组的赋值可以通过两种方式来进行。
(1)下标索引。与数组表示方法相类似,用圆括号内的下标来显示单元号。在等式右端用花括号把单元的内容括起来。例如一个2行2列的单元数组,赋值如下:
在这里插入图片描述
在这里插入图片描述
(2)单元索引。将单元数组的单元号用花括号括起来,在等式右侧写入单元的内容。同上例:
在这里插入图片描述
对于单元数组中,单元中的单元数组称为嵌套的单元数组或称为单元数组的子集。对于子集的赋值可以通过在两次单元索引(两次索引仍用花括号)的等式右侧赋值。如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
单元数组的删除和改写
与一般数组相似,可以用赋值空矩阵来删除单元数组的某单元。亦可以用reshape来改写矩阵。将在实例演练中练习。

单元数组的运算
单元数组中的数值矩阵仍符合数值矩阵的运算规则,对于字符数组则仍符合字符数组的运算规则。同样在例子中观察。

实例演练

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{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

3.嵌套单元数组的赋值


>> C{1,1}=magic(3);
>> C{1,2}=strvcat('John Smith','3/8/2005','Class||');
>> C{2,1}=[1.4,2.8,3.3,5.6];
>> C{2,2}=[2 3 4;3 6 10;4 10 20];
>> C{2,3}{1,1}='text';
>> C{2,3}{1,2}=[4 2;1 5];
>> C{2,3}{2,1}=[4 2 7];
>> C{2,3}{2,2}=[0.5+6*i];
>> C{1,2}=[2+i 1-2*i;1+2*i 2-i];
>> C

C =

  2×3 cell 数组

    {3×3 double}    {2×2 double}    {0×0 double}
    {1×4 double}    {3×3 double}    {2×2 cell  }

>> celldisp(C)
 
C{1,1} =
 
     8     1     6
     3     5     7
     4     9     2

 
 
C{2,1} =
 
    1.4000    2.8000    3.3000    5.6000

 
 
C{1,2} =
 
   2.0000 + 1.0000i   1.0000 - 2.0000i
   1.0000 + 2.0000i   2.0000 - 1.0000i

 
 
C{2,2} =
 
     2     3     4
     3     6    10
     4    10    20

 
 
C{1,3} =
 
     []
 
 
C{2,3}{1,1} =
 
text
 
 
C{2,3}{2,1} =
 
     4     2     7

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

 
 
C{2,3}{2,2} =
 
   0.5000 + 6.0000i

4.单元数组的删除
在这里插入图片描述

>> A={magic(3),'10/1/2005','name_Wang';[1,3,5,7],eye(3),'$5000'}

A =

  2×3 cell 数组

    {3×3 double}    {'10/1/2005'}    {'name_Wang'}
    {1×4 double}    {3×3 double }    {'$5000'    }

>> A{1,1}=[]

A =

  2×3 cell 数组

    {0×0 double}    {'10/1/2005'}    {'name_Wang'}
    {1×4 double}    {3×3 double }    {'$5000'    }

>> A{2,1}=[]

A =

  2×3 cell 数组

    {0×0 double}    {'10/1/2005'}    {'name_Wang'}
    {0×0 double}    {3×3 double }    {'$5000'    }

>> A{2,2}=[]

A =

  2×3 cell 数组

    {0×0 double}    {'10/1/2005'}    {'name_Wang'}
    {0×0 double}    {0×0 double }    {'$5000'    }

5.单元数组的修改
在这里插入图片描述

>> A=cell(4,6)

A =

  4×6 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}    {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}

>> B=reshape(A,3,8)

B =

  3×8 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}    {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)

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}

6.单位数组的运算
在这里插入图片描述

>> 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{2,3}=conv(A{2,1},A{2,2})

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

关于卷积运算可参考:https://blog.csdn.net/qq_32846595/article/details/79053277

猜你喜欢

转载自blog.csdn.net/weixin_45138411/article/details/102706039
今日推荐