- 积分
- 8201
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2020-9-23
- 最后登录
- 1970-1-1

|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最近在使用matlab中的gradient函数计算多维数组的梯度
当对[x,y]的二维数组进行计算时,输入的坐标数组顺序是反过来的,如[fy,fx] = gradient(F,y,x);
但是!
但是!
但是!
我发现对[x,y,z]三维数组进行计算时,按照相反的顺序输入坐标数组时会报错:
错误使用 gradient>parse_inputs (第 180 行)
每个网格间距参数必须为标量或向量,其条目数与对应维度中输入的大小相同。
出错 gradient (第 48 行)
[f,ndim,loc,rflag] = parse_inputs(f,varargin);
通过对gradient函数的调试,我发现从第三个维度的坐标开始,计算的顺序又会恢复正常。
因此对于三个及以上维度的数组[x,y,z,...,N],正确使用方式为
[fy,fx,fz,...,fN] = gradient(F,y,x,z,...,fN)
以上是个人使用Matlab时发现的一个坑,希望可以为大家提供帮助
|
|