Putting Consecutive numbers into variables
    5 views (last 30 days)
  
       Show older comments
    
    DARLINGTON ETAJE
 on 4 Jul 2019
  
    
    
    
    
    Commented: Walter Roberson
      
      
 on 18 Jul 2019
             I data in this format  a=[1;2;3;7;0;6;7;8;9;2;4;3;14;15;16;17;0;9;2]; 
what I need to accomplish is to put consecutive numbers into different variables... 
in this case the expected outcome is a1=[1;2;3]; a2=[6;7;8;9]; a3=[14;15;16;17]; How do I 
1 Comment
  Stephen23
      
      
 on 4 Jul 2019
				
      Edited: Stephen23
      
      
 on 4 Jul 2019
  
			"what I need to accomplish is to put consecutive numbers into different variables... "
Do NOT do this. Dynamically accessing variable names is one way that beginners force thmeselves into writing slow, complex, obfuscated, buggy code that is hard to debug:
Your code will be simpler and much more efficient if you simply use one container variable (e.g. a cell array, as my answer shows).
Accepted Answer
  Stephen23
      
      
 on 4 Jul 2019
        
      Edited: Stephen23
      
      
 on 4 Jul 2019
  
      >> A = [1;2;3;7;0;6;7;8;9;2;4;3;14;15;16;17;0;9;2];
>> D = diff([false;diff(A(:))==1;false]);
>> F = @(b,e)A(b:e);
>> C = arrayfun(F,find(D>0),find(D<0),'UniformOutput',false);
>> C{:}
ans =
    1
    2
    3
ans =
    6
    7
    8
    9
ans =
   14
   15
   16
   17
You can access the data in the cell array C using basic indexing:
3 Comments
  Walter Roberson
      
      
 on 18 Jul 2019
				b and are are dummy parameter names, similar to
function result = F(b, e)
   result = A(b, e)
end
More Answers (0)
See Also
Categories
				Find more on Workspace Variables and MAT Files 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!