Matlab中矩阵在垂直方向上的梯度

Matlab中矩阵在垂直方向上的梯度,matlab,Matlab,如何使用 “梯度”函数 对于矩阵的列? 例如,我想找到列的矩阵c的梯度: 我希望得到以下答案: B(i,j) = c(i+1,j)-c(i-1,j) %for i is not equal t 1 or last row of matrix c B(i,j) = c(i+1,j)-c(i,j) %for i is equal to 1 B(i,j) = c(i,j)-c(i-1,j) %for i is equal to last row of matrix c 我使用了下面的代码,但答案不是

如何使用 “梯度”函数 对于矩阵的列? 例如,我想找到列的矩阵c的梯度: 我希望得到以下答案:

B(i,j) = c(i+1,j)-c(i-1,j) %for i is not equal t 1 or last row of matrix c
B(i,j) = c(i+1,j)-c(i,j) %for i is equal to 1
B(i,j) = c(i,j)-c(i-1,j) %for i is equal to last row of matrix c
我使用了下面的代码,但答案不是我想要的

c=[4,6,8,12;4,0,22,0;32,42,12,6;20,10,4,7]
B = gradient(c')'
将为您提供y方向的渐变

[~, ygrad] = gradient(c);

如果您使用-ygrad而不是ygrad:,您的答案将变得完全正确。)