How can I equate all values of one vector to another and get the value ? Please find the example below
    7 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Rakesh Yadav Kodari
 el 18 de Feb. de 2019
  
    
    
    
    
    Comentada: Jos (10584)
      
      
 el 18 de Feb. de 2019
            If I have 
dataA = [1,2,3,4,5,6,7,8,9];
dataB = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];
I need to equate for example: 1 = 0.1, 2=0.2, 3=0.3 so that if I ask value(7) it should display 0.7
Thank you in Advance.
3 comentarios
  Rik
      
      
 el 18 de Feb. de 2019
				If your data is already paired, what exactly do you want to do? Mathematically it doesn't really make sense to equate them, as they are not equal. What do you want to use this for? Maybe then we can help you solve that problem instead.
Respuesta aceptada
  Andrei Bobrov
      
      
 el 18 de Feb. de 2019
        
      Editada: Andrei Bobrov
      
      
 el 18 de Feb. de 2019
  
      dataA = [-496,-636,-52,175,-84,-248,-555,-423,34,-174]';
dataB = [-0.399609375000000,-0.512402343750000,-0.0418945312500000,...
    0.140991210937500,-0.0676757812500000,-0.199804687500000,...
   -0.447143554687500,-0.340795898437500,0.0273925781250000,-0.140185546875000]';
x = [-636,-84,34];
[lo,ii] = ismember(x,dataA);
out = dataB(ii(lo));
3 comentarios
  Stephen23
      
      
 el 18 de Feb. de 2019
				
      Editada: Stephen23
      
      
 el 18 de Feb. de 2019
  
			@madhan ravi: you are right, but only if all elements of x are members of dataA. Robust programming would not assume this, which is probably why Andrei Bobrov prefers ii(lo), thus allowing for non-member values without causing an error.
If a non-member value is unacceptable to the algorithm then it would still be better to use assert and write a specific error message, rather than just rely on the uninformative "Indices must be positive integers" that would occur otherwise.
Más respuestas (1)
  Jos (10584)
      
      
 el 18 de Feb. de 2019
        You can use logical indexing, a very powerful tool in Matlab
tf = dataB == 7 
dataA(tf)
4 comentarios
  Stephen23
      
      
 el 18 de Feb. de 2019
				
      Editada: Image Analyst
      
      
 el 18 de Feb. de 2019
  
			@Jos: I guess that should be with double equals:
dataB(dataA == -496)
Ver también
Categorías
				Más información sobre Logical en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





