Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 使用大括号和圆括号访问单元格元素之间的差异_Matlab_Cell Array - Fatal编程技术网

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链接以非常清晰的方式进行解释,以便澄清您的概念,然后您就可以使用阵列了。链接的可能副本已被破坏。可能是指