【发布时间】:2017-03-14 23:29:06
【问题描述】:
我有一个嵌套单元格数组,其中一个字段用于信息,另一个用于另一个单元格。 如何使用辅助变量删除单元格?
例如:
T = 元胞数组的开始
P = T
P = P{2} 根据需要多次。
P{2} = []
删除的单元格在原始列表中不可见。
【问题讨论】:
-
不可能。一旦分配了
P = T,P就是T的新副本,独立于原始副本。
标签: octave cell-array
我有一个嵌套单元格数组,其中一个字段用于信息,另一个用于另一个单元格。 如何使用辅助变量删除单元格?
例如:
T = 元胞数组的开始
P = T
P = P{2} 根据需要多次。
P{2} = []
删除的单元格在原始列表中不可见。
【问题讨论】:
P = T,P 就是T 的新副本,独立于原始副本。
标签: octave cell-array
我认为您所做的代码并没有像您认为的那样做。 Octave\Matlab 没有完全实现指针的概念。
正如烧杯所说,赋值操作是复制,所以P = T是另一个元胞数组。实际上,出于性能原因,它保持相同的数组,直到您更改其中一个的内容。即直到P{2}={},此时T={}和P={[1,1] = [](0x0) [1,2] = {}(0x0)}。 (顺便说一句,P = P{2} 甚至不起作用。)
没关系,因为 Octave\Matlab 不打算公开内存寻址等。即您无法确定变量 P 和 T 是否存储在同一地址。相等运算符适用于数组元素,但并不完全适用于单元格。
Octave\Matlab 专为数字运算而设计。 轻松创建操作任意数据结构超出了他们的范围。 对于创建列表,以下链接可能会有所帮助,尽管解决方案非常复杂: MATLAB linked list
【讨论】: