1

我用谷歌搜索但找不到任何东西,尽管我认为这是一个普遍的需求。
我在 Matlab 中使用此函数将对象插入到单元格中:

function ce = insertInCell(ce,toInsert,idexx)
    ce = [ce(1:idexx-1,1); cellToInsert; ce(idexx:end,1);];
end 

我认为这个函数的工作原理是这样的:
第一:通过复制 ce(1:idexx-1,1) 创建一个新单元
第二:将 cellToInsert 添加到这个新单元
第三:复制并添加 ce(idexx:end,1); 到新细胞

我想知道是否有更有效的方法来做到这一点?我的意思是一个只更新元素索引的函数(或者我错了,这个函数有效吗?)

谢谢。

4

1 回答 1

1

MATLAB 不公开指针,因此您不能只更新索引(指针),除非您为此目的编写 MEX 文件。

您的代码中有一个错误:在代码中您引用了一个变量cellToInsert,但在函数定义中您只有toInsert.

您的代码仅适用于垂直元胞数组。它不适用于水平元胞数组或 n 维元胞数组。对于垂直元胞数组,它与toInsert-> cellToInsertfix 一起使用。

修正版:

function ce = insertInCell(ce,cellToInsert,idexx)
    ce = [ce(1:idexx-1); cellToInsert; ce(idexx:end) ];
end
于 2012-12-22T16:11:44.850 回答