由于某些原因,我需要在每次执行save
函数时显示一条消息。我的程序的所有代码都已编写完成。这就是我想要覆盖save
MATLAB内置函数的原因。
这是功能:
function save(varargin)
disp(['The file has been saved to ' varargin{1}])
builtin('save',varargin{:})
end
但是,它不起作用,MATLAB返回Error using save
。
我该如何解决这个问题?
答案 0 :(得分:2)
我假设varargin
是字符串的单元格数组,就像在内置函数save
中一样。
问题是您的save
版本不“知道”调用函数的变量。您可以使用evalin
函数在调用函数的上下文中评估save
为此,您应该将varargin
转换为字符串。一种方法是
function save(varargin)
disp(['The file has been saved to ' varargin{1}])
cmd = ['builtin(''save'',' sprintf(repmat('''%s'',',1,nargin),varargin{:}) ];
cmd(end) = ')';
evalin('caller',cmd)
end