Breaking down a large array
    5 views (last 30 days)
  
       Show older comments
    
Hi,
I have a large array (nx1) of values that I'd like to break up into a new array. This new array takes the first 200 or so values from the original array and then only selects every 3rd value (or even a logarithmic selection) of the original array to construct the new array. I was thinking about doing this with a loop, but I was wondering if matlab had any built-in functions that could do this.
Thanks, Charles
0 Comments
Accepted Answer
  Roger Stafford
      
      
 on 23 May 2013
        For spacing every third element
 p = a:3:b;
For logarithmic spacing
 p = round(k*a.^(1:n));
for appropriate a, k, and n. Then do this:
 new_array = old_array(p);
4 Comments
  Cedric
      
      
 on 23 May 2013
				
      Edited: Cedric
      
      
 on 23 May 2013
  
			What Roger is generating is an array of IDs/positions (that he then uses for indexing operations); you can work with these as you work with any other array; in particular, you can concatenate them, e.g.
 p = [1:200, 203:3:1000] ;
or
 p = [1:200, 200+3^(1:5)] ;
etc. Experiment with smaller numbers so you can easily visualize p.
More Answers (0)
See Also
Categories
				Find more on Logical in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


