我定义了一个类CellArrayHandle,它的唯一属性是函数句柄的元胞数组:
classdef CellArrayHandle < handle
properties
cel % cell array of function handles
end
end
假设myHandle是 CellArrayHandle 的一个对象,因此myHandle.cel是一个 n×1 函数句柄元胞数组,即myHandle.cel{i}是 i = 1 到 n 的函数句柄。
我想做一些更新(例如 i=1),但以下不起作用:
myHandle.cel{1} = @(x) myHandle.cel{1}(x) + 0.5;
Matlab说“达到500的最大递归限制”,所以它似乎被理解为无限递归。然而,以下工作:
f = @(x) f(x) + 0.5;
对于函数句柄 f。
似乎当我将函数句柄作为属性封装到类中时,上面的更新方法将不起作用。
我不明白前者和后者之间的区别。有人可以在这一点上帮助我吗?非常感谢。
此致,
坦率