How to call out rows that contains a value X in column Z of matrix A?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
If I have a matrix A what command would return the number of each row in A that contains the value X in column Z?
EXAMPLE:
A:
20.0000 1.0000 8.3333
2.0000 2.0000 32.6667
45.0000 1.0000 5.3333
4.0000 1.0000 8.3333
54.0000 3.0000 25.0000
38.0000 3.0000 33.3333
7.0000 2.0000 16.6667
8.0000 1.0000 10.3333
somefunction(3,A(:,2)) = [5,6]
5 and 6 being the rows in A that contain the value 3 in column 2
Thank you!
0 comentarios
Respuesta aceptada
the cyclist
el 12 de Oct. de 2012
find(A(:,Z)==X)
in general, and
find(A(:,2)==3)
for the specific case you mention.
2 comentarios
the cyclist
el 13 de Oct. de 2012
Editada: the cyclist
el 13 de Oct. de 2012
Are you sure that your values in the second column are _exactly _equal to 2? Or might they be slightly off, due to floating point precision?
I think you fill find the following code does what you expect:
A = [20.0000 1.0000 8.3333
2.0000 2.0000 32.6667
45.0000 1.0000 5.3333
4.0000 1.0000 8.3333
54.0000 3.0000 25.0000
38.0000 3.0000 33.3333
7.0000 2.0000 16.6667
8.0000 1.0000 10.3333]
find(A(:,2)==3)
Más respuestas (1)
Azzi Abdelmalek
el 12 de Oct. de 2012
If you have a cell array
A={'Value' 'Count' 'Percent'
1 1 '10.00%'
2 3 '30.00%'
3 1 '10.00%'
4 1 '10.00%'
5 0 '0.00%'
6 0 '0.00%'
7 3 '30.00%'
8 0 '0.00%'
9 1 '10.00%'}
out=find(cell2mat((A(2:end,2)))==3)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!