What's wrong with this expression?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
I have a vector x=[0:1:1000] and I would like to write the general expression of Gaussian(a,b,c,x) vector where a,b,c are its parameters that I can define time by time. Then I should plot it. The main problem is to write the expression
y=a*'exp(-(x-b)*'(x-b)/'(c*c))
that is in this way, not correct.. Thanks Bye Marco
0 Kommentare
Antworten (2)
Roger Stafford
am 1 Apr. 2015
Bearbeitet: Roger Stafford
am 1 Apr. 2015
y=a*exp(-(x-b).^2/c^2);
0 Kommentare
Adam Wyatt
am 1 Apr. 2015
Are a, b, & c scalars. If so: y = a*exp(-((x-b)/c).^2);
However, a more general version makes use of bsxfun ( see this post ) so that it can accept variable inputs:
% Search documentation for anonymous functions
Gaussian = @(A, x0, dx, x) bsxfun(@times, A, exp(-bsxfun(@rdivide, bsxfun(@minus, x, x0), dx).^2));
Lets say you wanted to generate a Gaussian at different central positions:
x = (0:1000).'; % x is a column vector - good practise to use column vectors
x0 = [300; 500; 600]; % x0 is a column vector
y = Gaussian(1, x0.', 100, x); % y is a 2D matrix with x (the domain) down the columns, x0 along the rows
plot(x, y); % Plot three shifted Gaussians
0 Kommentare
Siehe auch
Kategorien
Mehr zu Descriptive Statistics finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!