我想修改vpa
函数的行为。为此,我定义了自己的函数vpa
,该函数调用原始的vpa
函数,然后执行更多操作。
要从修改后的函数中调用原始函数,请使用
y = builtin('vpa',varargin{:});
其中varargin
是函数输入的单元格数组,照常。
问题在于,上述方法产生的结果与调用原始vpa
函数的结果不同。
Minimal example,在Octave 4.2.2上运行:
>> vpa([4 5],20)
ans = (sym) [4.0 5.0] (1x2 matrix)
>> builtin('vpa',[4 5],20)
ans = (sym) 4.0000000000000000000
same happens和disp
用于符号自变量:
>> x = sym(8);
>> disp(x)
8
>> builtin('disp',x)
<class sym>
为什么输出不同? builtin
真的不调用原始函数吗?如果是这样,我该如何调用原始函数?