appending element to vector
7 views (last 30 days)
Show older comments
Hello Im a diff function to estimate a derivative(du/dx), however I lose an element as excepted, now I want to add the average value of the derivative to the end of vector (du/dx) such that is the same length as u. Thanks
0 Comments
Answers (2)
Guillaume
on 4 Feb 2015
That doesn't sound very sensible as you're mixing two different entities into a single variable, but if that's what you want to do:
x = sin(linspace(0, pi, 100)); %for example
d = diff(x);
dwithmean = [d mean(d)]
2 Comments
Michael Haderlein
on 4 Feb 2015
As Guillaume has mentioned, that's not the usual way to go. Assume you want to plot the data (which requires equally sized arrays), these are the common options:
x=linspace(0,100);
y=x.^2;
dydx=diff(y)./diff(x);
figure, hold all
%best way: shift the x by half dx
x2=x(1:end-1)+diff(x)/2;
plot(x2,dydx)
%lazy way: just use n-1 x values
plot(x(1:end-1),dydx)
%semi-lazy way: add nan (will not be plotted)
dydx=[diff(y)./diff(x) nan];
plot(x,dydx)
When you run these lines, you see a shift between the blue line (which is technically correct) and the red/green lines (overlaying).
0 Comments
See Also
Categories
Find more on Line Plots in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!