Logical index multiple columns

조회 수: 12 (최근 30일)
Rainer Danner
Rainer Danner 2019년 12월 17일
편집: Ridwan Alam 2019년 12월 17일
We have a 111x1402 array A with one or no logical true for each column.
E.g.:
0 0 1 0 ...
1 0 0 0
0 1 0 1
.
.
.
Now we want to get the values for each of the 1402 columns from another array B which is 111x2.
Meaning the row of the 111 where there is a logical true in array A.
E.g.:
500 142
450 -12
305 125
. .
. .
. .
How can we achieve this in Matlab?
  댓글 수: 3
Adam Danz
Adam Danz 2019년 12월 17일
You lost me at , "Now we want to get the values for each of the 1402 columns from another array B which is 111x2." Does array B have 2 or 1402 columns? By "get the values" do you mean the row number of the 1-and-only TRUE in each column?
Rainer Danner
Rainer Danner 2019년 12월 17일
편집: Rainer Danner 2019년 12월 17일
B has 111 rows and 2 columns
Get the values = get the values of the 2 columns of B (e.g 500 and 142)
We tried:
cellCenters(bestConn(:, :), :)
Gives the following error:
The logical indices in position 1 contain a true value outside of the array bounds.
cellCenters(bestConn(:, 1), :)
Is working as expected but only returns the values for one and not all...

댓글을 달려면 로그인하십시오.

채택된 답변

Ridwan Alam
Ridwan Alam 2019년 12월 17일
편집: Ridwan Alam 2019년 12월 17일
I believe you are trying to find the row-indices of A, where the row contains a 1, and then extract those rows from B. In that case, this should help:
B(any(A,2),:)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by