我有以下格式的数据。
x y density
. . .
. . .
. . .
这里,density
是标量。如何在此数据集上执行渐变?我在Matlab中尝试了gradient
运算符。但是,它只返回一个标量。
注意:x
和y
均以单位间距均匀分布。边界点以浮点数结束,因为它是剪切数据。
答案 0 :(得分:2)
您可以对数据行进行排序,以便将数据点重新整形为2D矩阵。然后,您可以计算的渐变。
% Sort so that we get the density into column-major ordering
[~, inds] = sortrows(data(:,[1 2]));
% Reshape the density data so it's [numel(Y) x numel(X)]
density = reshape(data(inds,3), numel(unique(data(:,2))), numel(unique(data(:,1))));
% Compute the X and Y gradients
[FX, FY] = gradient(density);