logical indexing please help

2 visualizaciones (últimos 30 días)
Saad
Saad el 23 de Jul. de 2014
Editada: Julia el 23 de Jul. de 2014
Hey guys,
I would really appreciate your help in this.
I have a matrix of logical (i.e. for each row I have a lot of ones and zeros). The matrix is (100 x 100).
Now for each row (say first row) I would like to select the "one" element. Then I would like to compare the logical of each cell in the first row with the logical of other cells in the following rows. Then I would like to select the cells in the (other) rows that have similar logical expression with the cells of the first row i.e. (1,1) and ignore (1,0) or (0.0).
At the end, instead of having a matrix of (100 x100) say:
A=[ 1, 0 , 1,0 , 0....; 0, 1; 0; 1];
I would get a new (smaller) matrix A_new that only have elements that have similar logical expression that the first row of the matrix A: A_new= [ (1,1) , (1,1) ; ...];
I would really appreciate your help on this one. Thank you
S
  1 comentario
Sagar Damle
Sagar Damle el 23 de Jul. de 2014
Can you provide an example for your question along with desired answer to better understand it (using a small matrix) ?

Iniciar sesión para comentar.

Respuestas (1)

Julia
Julia el 23 de Jul. de 2014
Editada: Julia el 23 de Jul. de 2014
You could use the find() command.
find(A>0)
This gets you the index of every value of A which is greater than zero.
A =
1 1 0 0 1 1
0 0 1 1 0 1
1 0 1 0 1 0
1 0 0 0 0 1
>> find(A>0)
ans =
1
3
4
5
10
11
14
17
19
21
22
24
Matlab counts as follows: (1,1),(2,1),(3,1),(4,1),(1,2),(2,2) etc to (n,n)
First the first column, then the second etc.

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by