使用花括号和括号访问单元格元素之间的区别

时间:2012-01-29 17:12:19

标签: matlab cell-array

使用括号()和花括号{}访问单元格数组中的元素有什么区别?

例如,我尝试使用cell{4} = []cell(4) = []。在第一种情况下,它将4 th 元素设置为[],但在第二种情况下,它消灭了单元格元素,即将单元格元素数减少了1。

2 个答案:

答案 0 :(得分:62)

将单元数组视为常规同源数组,其元素均为cell s。括号(())只是访问cell包装器对象,而使用花括号({})访问元素时会给出包含在单元格中的实际对象。

例如,

A={ [5,6], 0 , 0 ,0 };

看起来像这样:

enter image description here

使用括号制作元素等于[] 的语法实际上是删除该元素的请求,因此当您要求执行foo(i) = []时,删除 - 第一个细胞。它不是赋值操作,而是RemoveElement操作,它使用类似的语法来赋值。

但是,当您执行foo{i} = []时,您将为第i个单元格分配一个新值(这是一个空数组),从而清除该单元格的内容。

答案 1 :(得分:3)

请参阅this link中的帮助。正如您将看到的,使用括号()访问,为您提供了一个单元格的子集(即子单元格),而花括号{}为您提供了您尝试访问的单元格的内容。