Matlab 使用大括号和圆括号访问单元格元素之间的差异
使用括号Matlab 使用大括号和圆括号访问单元格元素之间的差异,matlab,cell-array,Matlab,Cell Array,使用括号()和大括号{}访问单元格数组中的元素有什么区别 例如,我尝试使用单元格{4}=[]和单元格(4)=[]。在第一种情况下,它将第四个元素设置为[],但在第二种情况下,它删除了单元格元素,即将单元格元素计数减少了1。请参阅中的帮助。如您所见,使用圆括号()进行访问将为您提供单元格的子集(即子单元格),而大括号{}将为您提供您试图访问的单元格的内容。将单元格数组视为一个规则的同源数组,其元素都是cells。圆括号(())只需访问单元格包装对象,而使用花括号({})访问元素则给出单元格中包含的
()
和大括号{}
访问单元格数组中的元素有什么区别
例如,我尝试使用
单元格{4}=[]
和单元格(4)=[]
。在第一种情况下,它将第四个元素设置为[]
,但在第二种情况下,它删除了单元格元素,即将单元格元素计数减少了1。请参阅中的帮助。如您所见,使用圆括号()进行访问将为您提供单元格的子集(即子单元格),而大括号{}将为您提供您试图访问的单元格的内容。将单元格数组视为一个规则的同源数组,其元素都是cell
s。圆括号(()
)只需访问单元格
包装对象,而使用花括号({}
)访问元素则给出单元格中包含的实际对象
比如说,
A={ [5,6], 0 , 0 ,0 };
将如下所示:
使用括号使元素等于[]
的语法实际上是删除该元素的请求,因此当您请求执行foo(i)=[]
时,您将删除第i个单元格。它不是一个赋值操作,而是一个removelement
操作,它使用与赋值类似的语法
但是,当您执行
foo{i}=[]
操作时,您正在为第i个单元格分配一个新值(它是一个空数组),从而清除该单元格的内容。您可以将该单元格视为一个列表,其中存储指向其他内容的指针。使用()可以得到指针,{}可以得到指针指向的东西。另一种看待它的方式是,分配给[]
会删除分配给它的任何东西。因此foo(i)=[]
确实删除了第i个单元格,并且foo{i}=[]
删除了第i个单元格的内容。(什么也不留下([]
)看看这个关于单元阵列的倍频程文档(与MATLAB兼容;))mathworks链接以非常清晰的方式进行解释,以便澄清您的概念,然后您就可以使用阵列了。链接的可能副本已被破坏。可能是指