gradient with irregular grid
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Alessio Colella
el 2 de Mayo de 2023
Comentada: Star Strider
el 10 de Sept. de 2025
I have as a variable the temperature at a given depth and longitude, so it is a vector (317,1) where the 317 are all latitudes.
How do I get the gradient of this variable (which I call T) knowing that the latitude grid is irregular?
I can try
gradient_T=gradient(T,e1v) where e1v is the irregular vector?
0 comentarios
Respuesta aceptada
Star Strider
el 2 de Mayo de 2023
The gradient function assumes a fixed step size for the second argument.
The way I calculate the numerical derivative using an irregular grid for the reference (assuming vectors here) is:
gradient_T = gradient(T) ./ gradient(e1v);
That will essentially calculate
and generally produces the result I want.
.
4 comentarios
Joshua Port
el 10 de Sept. de 2025
Editada: Joshua Port
el 10 de Sept. de 2025
I should have realized what this was getting at. If your data looks like this:
x_1d = linspace(0, 100)';
x = repmat(x_1d, 1, 100);
And you do:
gradient(x)
You'll get 0 everywhere. To compute df/dx you would need to do:
[~, dx] = gradient(x);
dfdx = gradient(f) ./ dx;
This method doesn't work when one of your dimensions is curvy, though. I wish gradient could take in an array of points, even scattered ones, and a function defined at those points, and compute the gradient. I have a method for dealing with this, but it requires a lot of headache.
Star Strider
el 10 de Sept. de 2025
Of course, the derivative of a constant is zero. Beyond that, I am not following your use of the gradient function.
Stopping here.
Más respuestas (1)
Nathan Hardenberg
el 2 de Mayo de 2023
You can give the positions of the corresponding values as the second function argument. In your case the lattitude for each temperature measurement.
temperature = [30 29 28 27 26 25 24 23];
latitude = [1 2 3 4 5 10 11 20];
T = gradient(temperature, latitude)
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


