MATLAB 文档中有避免不必要的数据副本部分,其中可以找到以下语句:
写时复制
如果函数不修改输入参数,MATLAB 不会复制输入变量中包含的值。
在这种情况下,没有关于 varargin 的词。我试图制定一个能够监控内存使用情况的函数,但没有成功。所以我在这里问:写时复制功能是否适用于 varargin?
假设函数function Y = f(x,y,z)与函数function Y = f(varargin)。在第一种情况下,函数调用f(a,b,c)不会复制a,b和c(无论变量的类型如何)。在第二种情况下,函数调用的行为f(a,b,c)不清楚。将MATLAB点出来varargin{1}到a,varargin{2}要b和varargin{3}以c不明确创建单元阵列,或者是varargin一个明确的串联a,b以及c(因此内存将存储单元阵列内的三个变量的副本)?