How to derive and plot derive for a set of data with non linear x axis?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Star Strider
2022-10-27
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 个评论
Star Strider
2022-10-27
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')
.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Line Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!