getting the index after comparing two logicals

I compared two logicals and their results are as follows: a = [1 0 0 0 1] and b = [0 0 0 0 1]
  1. I wanted to compare these logicals, identifying the corresponding columns where both 1's appear.
  2. Identify which column that is: in this case, column 5.
Thanks

Answers (2)

Something like this:
a = [1 0 0 0 1];
b = [0 0 0 0 1];
idx = find(a & b)
idx = 5
Though depending on your needs, the usage of find() may be an unnecessary complication, as the intersection of the two vectors can likely be used for logical indexing just the same.
hello
see code below :
a = logical([1 0 0 0 1])
b = logical([0 0 0 0 1])
c = a & b
col_c_is_one = find(c)
gives the following results :
a = 1×5 logical array : 1 0 0 0 1
b = 1×5 logical array : 0 0 0 0 1
c = 1×5 logical array : 0 0 0 0 1
col_c_is_one = 5

Categories

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

Asked:

cgo
on 20 Jul 2022

Answered:

on 20 Jul 2022

Community Treasure Hunt

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

Start Hunting!