Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Help on Matrix search
Date: Thu, 3 Jun 2010 04:45:22 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 16
Message-ID: <hu7c12$t2b$1@fred.mathworks.com>
References: <hu6ae4$kgm$1@fred.mathworks.com>
Reply-To: <HIDDEN>
NNTP-Posting-Host: webapp-05-blr.mathworks.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1275540322 29771 172.30.248.35 (3 Jun 2010 04:45:22 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Thu, 3 Jun 2010 04:45:22 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1187260
Xref: news.mathworks.com comp.soft-sys.matlab:641720

"Dany " <rodytc@yahoo.com> wrote in message <hu6ae4$kgm$1@fred.mathworks.com>...
> 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
- - - - - - - -
  I assume that by "nearest" you mean the least sum of the squares of the differences between the six components.  Let x = [a,b,c,d,e] be the vector to be thus "best" matched.

 [t,p] = min( (P(:,1)-a).^2+(P(:,2)-b).^2+(P(:,3)-c).^2 ...
             +(P(:,4)-d).^2+(P(:,5)-e).^2 );

p is the desired index into rows of A.

  I would like to point out that, with the size of m you quoted, A would have to have 1,562,500,000,000 floating point numbers in it.  That's over ten terabytes.  Are you sure your computer has that much memory?

Roger Stafford