Hello, first thanks . What I 'm looking for is that when comparing the elements of the two vectors , for example when a (2) = 1.0000 is between the interval b(1) = 0 and b (2) = 2.4 in that row add a column value of 1 as it is between that range. That is, if the condition is met , for example a(2) is greater than or equal b(1) and less than b(2) corresponds to the first interval 1 comparing all elements of the row of the two matrices fulfilled those conditions
Add column to a matrix
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Mario Martos
 il 21 Mag 2016
  
    
    
    
    
    Commentato: Mario Martos
 il 22 Mag 2016
            Hello, I wanted to ask about how you might concatenate two vectors or matrices under conditions , ie comparing the elements. For example I have a matrix such that:
a =
         0
    1.0000
    2.0000
    2.4000
    2.5000
    3.0000
    3.5000
    4.8000
    5.0000
    5.5000
and another:
b =
         0 1.0000
    2.4000 2.0000
    4.8000 3.0000
And I want to have such a result that :
result =
         0 1.0000
    1.0000 1.0000
    2.0000 1.0000
    2.4000 2.0000
    2.5000 2.0000
    3.0000 2.0000
    3.5000 2.0000
    4.8000 3.0000
    5.0000 3.0000
    5.5000 3.0000
That is, comparing with the first column of b assign the value 1, 2,3 .. depending on whether the value is greater or is between two numeros.Por example 2.4 is greater and equal to the second element b but less the third and so .... Thanks in advanced.
Risposta accettata
  Andrei Bobrov
      
      
 il 21 Mag 2016
        
      Modificato: Andrei Bobrov
      
      
 il 21 Mag 2016
  
      a =[     0
    1.0000
    2.0000
    2.4000
    2.5000
    3.0000
    3.5000
    4.8000
    5.0000
    5.5000];
b =[      0 1.0000
    2.4000 2.0000
    4.8000 3.0000];
out = [a, b(cumsum(ismember(a,b(:,1))),2)]
or
[~,ii] = histc(a,[b(:,1);inf]);
out = [a, b(ii,2)]
8 Commenti
  Andrei Bobrov
      
      
 il 22 Mag 2016
				
      Modificato: Andrei Bobrov
      
      
 il 22 Mag 2016
  
			[~,ii] = histc(nmat(:,6), [Bach(:,1);inf]);
out = [nmat, Bach(ii,2)];
or (R2015a and later)
out = [nmat, discretize(nmat(:,6),[Bach(:,1);inf],Bach(:,2))];
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

