# How to save a value from an array if a condition is true

36 views (last 30 days)
Tejashree Pawar on 21 Oct 2021
Commented: Geoff Hayes on 25 Oct 2021
I have two cell arrays "X" and "Y". I need to check if a value in X==1, then save the corresponding Y value. How to do that in a for loop (I have many runs of X and Y)

Geoff Hayes on 21 Oct 2021
@Tejashree Pawar - do you need to use a loop? For example, if your X and Y arrays are the same dimensions, then (for example) if
X = [1 2 3 1 4 5 1 6 7];
Y = [7 2 2 8 2 2 9 2 2];
Z = Y(X==1)
then Z is
Z =
7 8 9
since X==1 returns a logical array of ones and zeros where a one corresponds to the match (to 1) in X. We can then use this logical array to extract those values from Y which match the logical 1.
##### 2 CommentsShowHide 1 older comment
Geoff Hayes on 25 Oct 2021
@Tejashree Pawar - couldn't you just use a single for loop to iterate over each element of X and then compare to 1? If true, then extract the equivalent element from Y and insert into an array. Is the problem keeping track of the data from each run?

R2018b

### Community Treasure Hunt

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

Start Hunting!