Info

This question is closed. Reopen it to edit or answer.

Indexing problem for matrix

1 view (last 30 days)
Dam
Dam on 10 Jan 2014
Closed: MATLAB Answer Bot on 20 Aug 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

Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 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 Comments
Dam
Dam on 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 on 10 Jan 2014
Edited: Dam on 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

Tags

Community Treasure Hunt

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

Start Hunting!