How to derive and plot derive for a set of data with non linear x axis?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, I have a 54x2 table for x axis and y axis. The x axis is data is non linear ( for example the first three points are 20327,20328,20329, and the fourth point is 22516, then 22517,22518,25832...) How can I plot the data and derive and plot the derivtive without linearly interpolation (so it does not fill or connect the missing points in the x axis)?
0 commentaires
Réponses (1)
Star Strider
le 27 Oct 2022
I have no idea what the data are.
x = sort(rand(1,20));
y = rand(size(x));
figure
plot(x, y)
grid
xlabel('x')
ylabel('y')
title('Data')
dydx = gradient(y) ./ gradient(x);
figure
plot(x, dydx)
grid
xlabel('x')
ylabel('$\frac{dy}{dx}$', 'Interpreter','latex')
title('Derivative')
The independent variable data do not need to be evenly-spaced.
.
2 commentaires
Star Strider
le 27 Oct 2022
I cannot do anything with an image of data.
The approach to ‘filling in gaps where there is no data’ is going to be a bit difficult, and likely depends on how you want to interpolate the ‘missing’ values.
One approach —
x = sort(rand(1,20));
y = rand(size(x));
figure
plot(x, y)
grid
xlabel('x')
ylabel('y')
title('Data')
xq = linspace(min(x), max(x), 150);
yq = interp1(x, y, xq, 'makima'); % Choose The Appropriate Interpolation Method For Your Data
figure
plot(xq, yq)
grid
xlabel('x')
ylabel('y')
title('interpolated Data')
dydx = gradient(yq) ./ gradient(xq);
figure
plot(xq, dydx)
grid
xlabel('x')
ylabel('$\frac{dy}{dx}$', 'Interpreter','latex')
title('Derivative of Interpolated Data')
.
Voir également
Catégories
En savoir plus sur Line Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!