Path: news.mathworks.com!not-for-mail From: <HIDDEN> Newsgroups: comp.soft-sys.matlab Subject: Help on Matrix search Date: Wed, 2 Jun 2010 19:12:04 +0000 (UTC) Organization: The MathWorks, Inc. Lines: 144 Message-ID: <hu6ae4$kgm$1@fred.mathworks.com> Reply-To: <HIDDEN> NNTP-Posting-Host: webapp-03-blr.mathworks.com Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: fred.mathworks.com 1275505924 21014 172.30.248.38 (2 Jun 2010 19:12:04 GMT) X-Complaints-To: news@mathworks.com NNTP-Posting-Date: Wed, 2 Jun 2010 19:12:04 +0000 (UTC) X-Newsreader: MATLAB Central Newsreader 2323531 Xref: news.mathworks.com comp.soft-sys.matlab:641584 I have used the below technique that I get help on it in previous post to generate the matrix P[m*6] and is so efficient, and have used the generated values to compute another function recursively A[m*100]. What I need now is to use the all possible values and the computed function in real simulation, to do this I need an efficient method to search fast within the all possible values ( which is a huge matrix i.e m is very big) to match real time values with some approximation boundaries and when I get the nearest match I just want to know the index of the match so I can get the other value A(m*100), in this case i need the index m ( row) . For example lets say that I am searching for [ 0.1122 0.2345 0.5876 0. 8977 0.3674 0.3756] and the the nearest value in matrix P is [0.111 0.232 0.588 0.889 0.368 0.376] , when match is done I can get the index to get value of A, remember the P matrix is very large i.e m=15625000000. Any suggestions I would be appreciated and I would like to explain any matter that is not clear in this post. Thanks _____________________________________________________________________ my previous post _______________________________________________________ Thread Subject: Need help from matlab experts Subject: Need help from matlab experts From: Raied Date: 1 May, 2010 10:27:05 Message: 1 of 4 Reply to this message Add author to My Watch List View original format Flag as spam Hi every body, I need some help in matlab, my simulation program should make some calculations on a huge no. of random data, in fact these data have some bounds, so we figured out to compute all possible values in the range of data then save the computed values to be used in the original simulation when it is needed. To be more specific lets say we have 6 variables in which each variable change from 0---1 with step .02, I need to compute all possible values between these variables and for each set of the six variables I have some calculations and another value is computed, more over the whole operation repeated say 50 times in recursive computation to compute the value for each set of variables lets say for all times. I hope I made the general idea clear and I would like to explain if anything is not clear. I need some help wt is the best way to do this to gain execution time and wt is the best way to generate the matrix off all possible values since when using for loops it took too long time. I would like to try generating the matrix of all possible values by mean of vectors, any suggestion on this would help. thanks Subject: Need help from matlab experts From: us Date: 1 May, 2010 12:17:21 Message: 2 of 4 Reply to this message Add author to My Watch List View original format Flag as spam "Raied " <rodytc@yaoo.com> wrote in message <hrgvlp$qfc$1@fred.mathworks.com>... > Hi every body, > I need some help in matlab, my simulation program should make some calculations on a huge no. of random data, in fact these data have some bounds, so we figured out to compute all possible values in the range of data then save the computed values to be used in the original simulation when it is needed. To be more specific lets say we have 6 variables in which each variable change from 0---1 with step .02, I need to compute all possible values between these variables and for each set of the six variables I have some calculations and another value is computed, more over the whole operation repeated say 50 times in recursive computation to compute the value for each set of variables lets say for all times. I hope I made the general idea clear and I would like to explain if anything is not clear. I need some help wt is the best way to do this to gain execution time and wt is the best way to > generate the matrix off all possible values since when using for loops it took too long time. I would like to try generating the matrix of all possible values by mean of vectors, any suggestion on this would help. thanks one of the possible solutions % the data rng=0:.5:1; % <- your range... nv=3; % <- your # of vars... % the engine arg=repmat({rng},1,nv); n=numel(arg); x=cell(n,1); [x{1:n,1}]=ndgrid(arg{end:-1:1}); p=reshape(cat(n+1,x{:}),[],n); p=p(:,end:-1:1); % the result disp(p); %{ 0 0 0 0 0 0.5 0 0 1 0 0.5 0 0 0.5 0.5 0 0.5 1 0 1 0 0 1 0.5 0 1 1 0.5 0 0 0.5 0 0.5 0.5 0 1 0.5 0.5 0 0.5 0.5 0.5 0.5 0.5 1 0.5 1 0 0.5 1 0.5 0.5 1 1 1 0 0 1 0 0.5 1 0 1 1 0.5 0 1 0.5 0.5 1 0.5 1 1 1 0 1 1 0.5 1 1 1 %} us Subject: Need help from matlab experts From: Raied Date: 1 May, 2010 17:25:09 Message: 3 of 4 Reply to this message Add author to My Watch List View original format Flag as spam "us " <us@neurol.unizh.ch> wrote in message <hrh64h$kcr$1@fred.mathworks.com>... > "Raied " <rodytc@yaoo.com> wrote in message <hrgvlp$qfc$1@fred.mathworks.com>... > > Hi every body, > > I need some help in matlab, my simulation program should make some calculations on a huge no. of random data, in fact these data have some bounds, so we figured out to compute all possible values in the range of data then save the computed values to be used in the original simulation when it is needed. To be more specific lets say we have 6 variables in which each variable change from 0---1 with step .02, I need to compute all possible values between these variables and for each set of the six variables I have some calculations and another value is computed, more over the whole operation repeated say 50 times in recursive computation to compute the value for each set of variables lets say for all times. I hope I made the general idea clear and I would like to explain if anything is not clear. I need some help wt is the best way to do this to gain execution time and wt is the best way > to > > generate the matrix off all possible values since when using for loops it took too long time. I would like to try generating the matrix of all possible values by mean of vectors, any suggestion on this would help. thanks > > one of the possible solutions > > % the data > rng=0:.5:1; % <- your range... > nv=3; % <- your # of vars... > % the engine > arg=repmat({rng},1,nv); > n=numel(arg); > x=cell(n,1); > [x{1:n,1}]=ndgrid(arg{end:-1:1}); > p=reshape(cat(n+1,x{:}),[],n); > p=p(:,end:-1:1); > % the result > disp(p); > %{ > 0 0 0 > 0 0 0.5 > 0 0 1 > 0 0.5 0 > 0 0.5 0.5 > 0 0.5 1 > 0 1 0 > 0 1 0.5 > 0 1 1 > 0.5 0 0 > 0.5 0 0.5 > 0.5 0 1 > 0.5 0.5 0 > 0.5 0.5 0.5 > 0.5 0.5 1 > 0.5 1 0 > 0.5 1 0.5 > 0.5 1 1 > 1 0 0 > 1 0 0.5 > 1 0 1 > 1 0.5 0 > 1 0.5 0.5 > 1 0.5 1 > 1 1 0 > 1 1 0.5 > 1 1 1 > %} > > us Thanks a lot, the code just worked perfectly generating the data , I will use it in my simulation and if any other difficulty exists dealing with vector data , I will ask you later, Thanks again _____________________________________________________________________ ____________________________________________________________________