appending element to vector
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (2)
Guillaume
il 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 Commenti
Michael Haderlein
il 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 Commenti
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!