Insert new values in specific position after processing
    6 views (last 30 days)
  
       Show older comments
    
I have a vector A of logical datatype size 5 x 1
A = [1 0 0 1 1 ];
Then I extracted the features where A = 1
ind1 = A(:,1) == 1;
A1 = Feat(ind1,:);
After processing I obtained a new vector 
Anew  = [ 1 0 1]
Now I want to insert the Anew back to A in the same position to obtain the result as
[1 0 0 0 1]
When I insert the vector back the values are not coming correctly.
Please can someone help me to insert Anew to A in the same position. 
The size of vector A can vary
0 Comments
Accepted Answer
  Askic V
      
 on 12 Feb 2023
        
      Edited: Askic V
      
 on 12 Feb 2023
  
      In such stuations, I would keep track of indices of elements in the original vector, use find function.
A = logical([1 0 0 1 1]);
ind = find(A == 1)
% processing
Anew = logical([1 0 1]);
A(ind) = Anew
 If you really need to change and process the original vector, then instead of removing element in it, place Nan in its position as a placeholder. 
3 Comments
  Askic V
      
 on 12 Feb 2023
				
      Edited: Askic V
      
 on 12 Feb 2023
  
			In the following example, the result is expected:
A = [5 5 3 2 1 3 4 5 6 2 1 4 5]
ind = find(A == 5) % keep track of the indices
% processing
%..........
A(ind) = [999.9, 99.9, 9.9, 0.99]
So the logic is good. Please post your code and an example where elements are placed in the wrng positions.
More Answers (1)
See Also
Categories
				Find more on Multirate Signal Processing 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!

