Effacer les filtres
Effacer les filtres

Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

Indexing problem for matrix

1 vue (au cours des 30 derniers jours)
Dam
Dam le 10 Jan 2014
Clôturé : MATLAB Answer Bot le 20 Août 2021
Good morning , i have a question related to indexing for the following
S=100;
T=1;
sig=[0.05:0.01:0.45];
m=0.07;
t=1/252;
E_T=0;
in=S*ones(1,41)%41 size sig;
while E_T < T -10^(-5)
E_T=E_T+t;
sig=[0.05:0.01:0.45];
Multip = exp((m-sig.^2/2)*t+sig.*sqrt(t).*randn(1,1));
S = S.*Multip;
in=[in S];
end
in=vec2mat(in,41,253);
i try to use more than 1 random number ex:randn(3,1) or (1,3) and then put the results for each value of sig in one raw (or colomn) Thank you in advance Best regards

Réponses (1)

Azzi Abdelmalek
Azzi Abdelmalek le 10 Jan 2014
S=100;
T=1;
sig=[0.05:0.01:0.45];
m=0.07;
t=1/252;
E_T=0;
in=S*ones(3,41)%41 size sig;
while E_T < T -10^(-5)
E_T=E_T+t;
sig=[0.05:0.01:0.45];
Multip = bsxfun(@times,exp((m-sig.^2/2)*t+sig.*sqrt(t))',randn(1,3))';
S = S.*Multip;
in=[in S];
end
  2 commentaires
Dam
Dam le 10 Jan 2014
Thank you for your answer , but it is apparently not generating the results I want as for Multip equation it is simply Multip= exp((m- sig^2/2)*t+sig*sqrt(t)*randn) So the random number is inside the exponentail and it is first mutiplied by sig*sqrt(t) only
Dam
Dam le 10 Jan 2014
Modifié(e) : Dam le 10 Jan 2014
Actually it is bsxfun(@times what i needed ... I used it differntly and it works now: A = (ones(3,1)*((m-sig.^2/2)*t)) B=bsxfun(@times, sig.*sqrt(t),randn(3,1)); Multip=exp(A+B); Thank you

Cette question est clôturée.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by