I am trying to understand some Matlab code. One line goes a(1, a(2, :))
, where a
is a logical matrix. The result of this line is a single logical value. I wonder what this line does?
Asked
Active
Viewed 26 times
0

Cris Luengo
- 55,762
- 10
- 62
- 120

fdls2011
- 37
- 5
1 Answers
1
The code selects the entries in the first row of a
wherever the second row of a
is equal to 1
.
In MATLAB, when you index with a number like a(1, [2,3,4])
you get the second, third, and fourth entry in the first row of a
. When you use a logical, it pulls out entries that are equal to 1
only so the previous command is equal to a(1, logical([0 1 1 1]))
because the second, third, and fourth entry in in the index are equal to 1
. Therefore, the command a(1, find(a(2,:)))
is equivalent to a(1, a(2, :))
.

Steve
- 3,957
- 2
- 26
- 50