[Scilab-users] Is there a way to do it with Matrix Operations?
Rafael Guerra
jrafaelbguerra at hotmail.com
Mon Sep 25 18:58:31 CEST 2017
Hi Heinz,
Your code example is not working.
The index ‘i’ runs out of bounds.
Regards,
Rafael
From: users [mailto:users-bounces at lists.scilab.org] On Behalf Of Heinz Nabielek
Sent: Monday, September 25, 2017 2:03 PM
To: Users mailing list for Scilab <users at lists.scilab.org>
Subject: [Scilab-users] Is there a way to do it with Matrix Operations?
Dear colleagues:
in an attempt to code the generation of random deviates for a user-defined probability function p=[0.1176471 0.2352941 0.0588235 0.3882353 0.2 ], I spent only a few minutes to write the Scilab code below and it gives me all the solutions (frequency distribution of random numbers) that I need.
N=100;X=grand(7,N,'def');
C=[];for j=1:7;Count(1:5)=0;for k=1:N;i=1;while X(j,k)>P(i);i=i+1;end;Count(i)=Count(i)+1;end;C=[C Count];end;
and one typical sample run yields this
C =
15. 9. 6. 12. 8. 12. 10.
20. 26. 38. 20. 23. 26. 24.
6. 7. 4. 7. 5. 10. 4.
38. 39. 32. 37. 48. 30. 39.
21. 19. 20. 24. 16. 22. 23.
However, the for and while loops will be terribly inefficient and this is not good for large scale Monte-Carlo simulations.
Is there a way to do it with Matrix Operations?
Best greetings
Heinz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20170925/31ff3486/attachment.htm>
More information about the users
mailing list