Logical index multiple columns

3 vues (au cours des 30 derniers jours)
Rainer Danner
Rainer Danner le 17 Déc 2019
Modifié(e) : Ridwan Alam le 17 Déc 2019
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 commentaires
Adam Danz
Adam Danz le 17 Déc 2019
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 le 17 Déc 2019
Modifié(e) : Rainer Danner le 17 Déc 2019
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...

Connectez-vous pour commenter.

Réponse acceptée

Ridwan Alam
Ridwan Alam le 17 Déc 2019
Modifié(e) : Ridwan Alam le 17 Déc 2019
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),:)

Plus de réponses (0)

Catégories

En savoir plus sur Operators and Elementary Operations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by