MATLAB Newsgroup

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

_____________________________________________________________________

____________________________________________________________________

"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

You can think of your watch list as threads that you have bookmarked.

You can add tags, authors, threads, and even search results to your watch list. This way you can easily keep track of topics that you're interested in. To view your watch list, click on the "My Newsreader" link.

To add items to your watch list, click the "add to watch list" link at the bottom of any page.

To add search criteria to your watch list, search for the desired term in the search box. Click on the "Add this search to my watch list" link on the search results page.

You can also add a tag to your watch list by searching for the tag with the directive "tag:tag_name" where tag_name is the name of the tag you would like to watch.

To add an author to your watch list, go to the author's profile page and click on the "Add this author to my watch list" link at the top of the page. You can also add an author to your watch list by going to a thread that the author has posted to and clicking on the "Add this author to my watch list" link. You will be notified whenever the author makes a post.

To add a thread to your watch list, go to the thread page and click the "Add this thread to my watch list" link at the top of the page.

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

The newsgroups are a worldwide forum that is open to everyone. Newsgroups are used to discuss a huge range of topics, make announcements, and trade files.

Discussions are threaded, or grouped in a way that allows you to read a posted message and all of its replies in chronological order. This makes it easy to follow the thread of the conversation, and to see what’s already been said before you post your own reply or make a new posting.

Newsgroup content is distributed by servers hosted by various organizations on the Internet. Messages are exchanged and managed using open-standard protocols. No single entity “owns” the newsgroups.

There are thousands of newsgroups, each addressing a single topic or area of interest. The MATLAB Central Newsreader posts and displays messages in the comp.soft-sys.matlab newsgroup.

**MATLAB Central**

You can use the integrated newsreader at the MATLAB Central website to read and post messages in this newsgroup. MATLAB Central is hosted by MathWorks.

Messages posted through the MATLAB Central Newsreader are seen by everyone using the newsgroups, regardless of how they access the newsgroups. There are several advantages to using MATLAB Central.

**One Account**

Your MATLAB Central account is tied to your MathWorks Account for easy access.

**Use the Email Address of Your Choice**

The MATLAB Central Newsreader allows you to define an alternative email address as your posting address, avoiding clutter in your primary mailbox and reducing spam.

**Spam Control**

Most newsgroup spam is filtered out by the MATLAB Central Newsreader.

**Tagging**

Messages can be tagged with a relevant label by any signed-in user. Tags can be used as keywords to find particular files of interest, or as a way to categorize your bookmarked postings. You may choose to allow others to view your tags, and you can view or search others’ tags as well as those of the community at large. Tagging provides a way to see both the big trends and the smaller, more obscure ideas and applications.

**Watch lists**

Setting up watch lists allows you to be notified of updates made to postings selected by author, thread, or any search variable. Your watch list notifications can be sent by email (daily digest or immediate), displayed in My Newsreader, or sent via RSS feed.

- Use a newsreader through your school, employer, or internet service provider
- Pay for newsgroup access from a commercial provider
- Use Google Groups
- Mathforum.org provides a newsreader with access to the comp.soft sys.matlab newsgroup
- Run your own server. For typical instructions, see: http://www.slyck.com/ng.php?page=2