Matlab: гауссовская модель с переменным средним и стандартным отклонением
Я хотел бы добавить модель гауссовского шума с переменным стандартным отклонением (Sigma) и переменным средним (Mu) к моей выходной кривой, которая показана на рисунке ниже
http://i.imgur.com/hABfsiC.jpg
Следующая функция генерирует выходную кривую, выраженную на рисунке выше
function c_t = output_function_constrainedK2(t, a1, a2, a3,b1,b2,b3,td, tmax,k1,k2,k3)
K_1 = (k1*k2)/(k2+k3);
K_2 = (k1*k3)/(k2+k3);
DV_free= k1/(k2+k3);
c_t = zeros(size(t));
ind = (t > td) & (t < tmax);
c_t(ind)= conv(((t(ind) - td) ./ (tmax - td) * (a1 + a2 + a3)),(K_1*exp(-(k2+k3)*t(ind)+K_2)),'same');
ind = (t >= tmax);
c_t(ind)= conv((a1 * exp(-b1 * (t(ind) - tmax))+ a2 * exp(-b2 * (t(ind) - tmax))) + a3 * exp(-b3 * (t(ind) - tmax)),(K_1*exp(-(k2+k3)*t(ind)+K_2)),'same');
plot(t,c_t);
axis([0 50 0 1400]);
xlabel('Time[mins]');
ylabel('concentration [Mbq]');
title('Model :Constrained K2');
end
Выходные значения для вышеуказанной функции
output_function_constrainedK2(0:0.1:50,2501,18500,65000,0.5,0.7,0.3,...
0.28,0.9,0.014,0.051,0.07)
Теперь я хотел бы добавить гауссовскую функцию распределения вероятностей с переменной сигма стандартного отклонения и средним значением к вышеупомянутой функции, может кто-нибудь, пожалуйста, помогите мне через это, я абсолютный новичок в Matlab
1 ответ
Между этими линиями
c_t(ind)= conv((a1 * exp(-b1 * (t(ind) - tmax))+ a2 * exp(-b2 * (t(ind) - tmax))) + a3 * exp(-b3 * (t(ind) - tmax)),(K_1*exp(-(k2+k3)*t(ind)+K_2)),'same');
plot(t,c_t);
добавить следующее
c_t = c_t + normrnd(mu,sigma,length(c_t),1)
обратитесь к документации normrnd для получения дополнительной информации о функции normrnd. Или введите
help normrnd
в консоли Matlab.
отредактируйте, чтобы исправить этот ответ в соответствии с вашим последним комментарием:
оставьте c_t как прежде, и вам нужно будет создать новый вектор:
c_t_noise = c_t + normrnd(mu,sigma,1,length(c_t))
также изменил порядок параметров в normrnd, чтобы соответствовать вашему измерению. Чтобы построить две кривые, просто используйте расширенный график, например так:
plot(t,c_t, t,c_t_noise)
или держись так
plot(t,c_t)
hold on %tells matlab to put plots in the same figure
plot(t,c_t_noise)
hold off %this line if you pretend to make some other plot, desactivate hold on
больше информации о функции "hold" в консоли Matlab
help hold