Iterating through a dataset and creating a vector with according values
    1 visualización (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
So I have a 10 000 X 1 vector (let's call it vector A) of different values ranging from -1 to 1. I want to create another 10 000 X 1 vector (let's call it vector B) that has values corresponding to the ones in the first vector. I want to create a loop that does this: 
Everytime a value in vector A is bigger than 0.5, add the value 3 to vector B with the same corresponding position.
Everytime a value in vector A is smaller than -0.5, add the value 1 to vector B with the same corresponding position. 
Everytime a value in vector A is between -0.5 and 0.5, add the value 2 to vector B with the same corresponding.
In that case, the resulting matrix should look like this: 
[A]     [B]
-0.9    1
-0.3    2
0.6     3
-0.2    2
-0.7    1
I know I need to use a loop but I struggle with this. Thank you so much for your help. 
2 comentarios
  Dyuman Joshi
      
      
 el 20 de Sept. de 2022
				What about border values i.e. 0.5 and -0.5, where value will you assign to corresponding B elements?
Respuestas (1)
  dpb
      
      
 el 20 de Sept. de 2022
        Rarely need loops for such things as this with MATLAB; either logical addressing or table lookup almost always comes to the rescue -- the latter (using the builtin interpolation routine) solution here would be
A=[-0.9;-0.3;0.6;-0.2;-0.7];
B=interp1([-1,-0.5,0.5,1],[1,2,3,3],A,'previous')
Alternatively, another lookup solution, with less overhead...
B=discretize(A,[-1,-0.5,0.5,1])
4 comentarios
  Dyuman Joshi
      
      
 el 20 de Sept. de 2022
				After you get the values, you can get the values as such
str={'GT';'IN';'ST'};
A=[-0.9;-0.3;0.6;-0.2;-0.5;0.5];
B=interp1([-1,-0.5,0.5,1],[1,2,3,3],A,'previous');
%cell array
C=str(B)
%char array
D=cell2mat(C)
Ver también
Categorías
				Más información sobre Loops and Conditional Statements 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!


