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

raj*_*pit 23 matlab cell-array

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

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

And*_*ein 63

将单元阵列视为规则的同源阵列,其元素都是cells.圆括号(())只是访问cell包装器对象,而使用花括号()访问元素则{}给出了单元格中包含的实际对象.

例如,

A={ [5,6], 0 , 0 ,0 };
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

在此输入图像描述

使元素[] 与括号相等的语法实际上是删除该元素的请求,因此当您要求foo(i) = []删除第i个单元格时.它不是赋值操作,而是一个RemoveElement操作,它使用类似的语法来赋值.

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

  • 你可以看到单元格作为一个列表,它存储指向其他东西的指针.使用()得到指针,{}你得到指针所指向的东西. (3认同)