单元数组
语法知识
单元数组
单元数组是一种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+