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!