Borrar filtros
Borrar filtros

Select the column with at least one 1 in it

6 visualizaciones (últimos 30 días)
Rishi Balasubramanian
Rishi Balasubramanian el 20 de Dic. de 2020
Comentada: Walter Roberson el 20 de Dic. de 2020
Hey people
Assume I have a m by n matrix of binary data. How would I be able to identify the column that has the least number of ones?
I used the sum function and compared the max and min. Later on in many loops I realised that it also identifies the column with zero 1s too. How do I avoid that?
The column to be selected must have a minimum of one 1s to n number of ones.
b = sum(H);
bmax = max(b);
bmin = min(b);
RC = find(b==min(b));
%This is what I am using which identifies the column with zero ones. Any simple methods?

Respuesta aceptada

Walter Roberson
Walter Roberson el 20 de Dic. de 2020
Editada: Walter Roberson el 20 de Dic. de 2020
find(any(H,1))
If you need at most n ones then:
b = sum(H,1);
find(b >= 1 & b <= n)
  4 comentarios
Rishi Balasubramanian
Rishi Balasubramanian el 20 de Dic. de 2020
Consider a matrix H = 1x30.
The data in those elements are numbers 0, 1, 2, ......, n
I wanna be able select the column(s) with the values from 1.
If H has a '0', then columns having '1' must be returned.
If H has a '0', and has no 1s, then columns having '2' must be returned.
If H has a '0', and has no 1s and 2s, then columns having '3' must be returned.... and so on.
It should be able to return all the columns with a minimum value in it, where the minimum value cannot be zero. But it is any available minimum value after 0.
How do i achieve this?
Walter Roberson
Walter Roberson el 20 de Dic. de 2020
any(H==min(H(H~=0)),1)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by