MATLAB:A{:}vs A(:)当A是单元数组时

MATLAB:A{:}vs A(:)当A是单元数组时,matlab,cell-array,Matlab,Cell Array,如果A是MATLAB中的一个单元数组,我想了解A{:}和A(:)之间的区别,以及它们应该放在哪里 如您所知,前者指的是对数组中的一组单元格(实际上是所有单元格)进行索引,后者指的是对数组中的一组基础值(同样,也是所有单元格)进行索引 单元格数组只不过是同质数组,其元素都是单元格,并且单元格具有任何类型的基础值。圆括号仅访问单元格(基础值的包装对象),而大括号访问由单元格本身包装的元素(基础值) 让我们举个简单的例子。圆括号将返回单元格数组,因为使用了单个(:)并且矩阵是平坦的: A = {1 2

如果
A
是MATLAB中的一个单元数组,我想了解
A{:}
A(:)
之间的区别,以及它们应该放在哪里

如您所知,前者指的是对数组中的一组单元格(实际上是所有单元格)进行索引,后者指的是对数组中的一组基础值(同样,也是所有单元格)进行索引

单元格数组只不过是同质数组,其元素都是单元格,并且单元格具有任何类型的基础值。圆括号仅访问单元格(基础值的包装对象),而大括号访问由单元格本身包装的元素(基础值)

让我们举个简单的例子。圆括号将返回单元格数组,因为使用了单个(
)并且矩阵是平坦的:

A = {1 2; 3 4};
A(:)

ans =

  4×1 cell array

    [1]
    [3]
    [2]
    [4]
相反,大括号将返回每个单元格的基础值(双精度):

在第二种情况下,如果希望返回数组,则必须按如下方式编写选择器:

[A{:}]

ans =

     1     3     2     4
正如您在中所读到的,前者指的是对数组中的一组单元格(实际上是所有单元格)进行索引,后者指的是对数组中的一组基础值(同样,也是所有单元格)进行索引

单元格数组只不过是同质数组,其元素都是单元格,并且单元格具有任何类型的基础值。圆括号仅访问单元格(基础值的包装对象),而大括号访问由单元格本身包装的元素(基础值)

让我们举个简单的例子。圆括号将返回单元格数组,因为使用了单个(
)并且矩阵是平坦的:

A = {1 2; 3 4};
A(:)

ans =

  4×1 cell array

    [1]
    [3]
    [2]
    [4]
相反,大括号将返回每个单元格的基础值(双精度):

在第二种情况下,如果希望返回数组,则必须按如下方式编写选择器:

[A{:}]

ans =

     1     3     2     4
读一下,读一下。