Remove values from cell array

Hi all
array1 = {[1,2,3,6,7,8];[1,2,6]}
array2 = {[3,6,7,8];[1,2,6]}
Remove = {[0.94,1,0.5,0.90,1,0.87];[1,0.9,1]}
Values in array1 corresponds to each value in 'Remove' e.g. 1 corresponds to 0.94, 2 corresponds to 1 and so on. In array2 i have removed some values from array1 based on a condition. Like 1,2 are removed from array1{1,1} where as no value is removed from array1{2,1} (result shown in array2)
Now I also need to remove corresponding values from 'Remove' which are removed from array1. Like 1,2 are removed from array1{1,1} so 0.94 and 1 will also be removed from 'Remove'. Result will look like this:
ResultantArray = {[0.5,0.90,1,0.87];[1,0.9,1]}
Please help.

 Accepted Answer

Consider you save the index of the first two values deleted from array1 as follows:
idx=find(array1{1,1}(1:2));
Then, delete the first two corresponding values from Remove as follows:
Remove{1,1}(idx)=[]

3 Comments

lucksBi
lucksBi on 3 Jan 2018
Edited: lucksBi on 3 Jan 2018
Thank You. What if values deleted are 4 and 8. I mean not continuous as 1 and 2?
Well, to generalize it, you may use ismember function as follows:
[~,idx]=find(ismember(array{1,1},[4,8]));
Thanks alot.

Sign in to comment.

More Answers (0)

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Tags

Asked:

on 3 Jan 2018

Commented:

on 3 Jan 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!