Indexing Vector of Variables
    3 次查看(过去 30 天)
  
       显示 更早的评论
    
I have a column vector of numbers (we'll call it A for example). Is there a slick way to go through A and create another column vector (B) of indices? In other words, if a number in A falls in the range of 0-0.1, it will be binned (i.e., indexed) as 1 in B. If a number in A falls in the range of 0.1-0.2, it will be indexed as 2 in B. If a number in A falls in the range of 0.2-0.3, it will be indexed as 3 in B. And so on. Vector B will then serve as my Indexing vector to allocate each number of A to a certain "bin." I'm sure I could write a FOR and/or IF statement to accomplish this. But for the sake of efficiency, I wanted to ask if there was a more efficient and easier way.
Thanks,
M Ridzon
0 个评论
采纳的回答
  Stephen23
      
      
 2017-11-15
        
      编辑:Stephen23
      
      
 2017-11-15
  
      That is what the histogram functions do very easily and efficiently:
or
or
etc.
Here is an example:
>> V = rand(1,10)
V =
    0.8093   0.0174   0.3329   0.4669   0.5331   0.1471   0.9760   0.3909   0.4499   0.3305
>> B = 0:0.1:1; % bin edges
>> [~,idx] = histc(V,B)
idx =
    9    1    4    5    6    2   10    4    5    4
4 个评论
  Stephen23
      
      
 2017-11-15
				@Matthew: did you read the discretize help? It clearly explains how the data are allocated to the bins.
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


