在将matlab代码改写为C++时碰到了gradient函数,大概看了下matlab中gradient函数的代码实现,可分为两个部分:
1、[f,ndim,loc,rflag] = parse_inputs(f,v):分析输入数据的情况,比如确定输入数据的维数等。
2、varargout = gradient(f,varargin):这是核心部分。以二维矩阵作为输入对象,精简后,思路如下:
当按[Fx,Fy]=gradient(x)调用gradient时,计算F水平反向上的梯度Fx和垂直方向上的梯度Fy。